zoukankan      html  css  js  c++  java
  • 如何处理json字符串

    private static final Logger logger = LoggerFactory.getLogger(JsonUtils.class);
        private static final ObjectMapper mapper = new ObjectMapper();
        
        static {
            mapper.configure(JsonParser.Feature.ALLOW_COMMENTS, true);
            mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
            mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
            mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
            mapper.configure(JsonParser.Feature.INTERN_FIELD_NAMES, true);
            mapper.configure(JsonParser.Feature.CANONICALIZE_FIELD_NAMES, true);
    
            mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    
            mapper.configure(JsonGenerator.Feature.QUOTE_FIELD_NAMES, false);
            mapper.configure(JsonGenerator.Feature.QUOTE_NON_NUMERIC_NUMBERS, false);
        }
        
        public static ObjectMapper getJsonObjectMapper(){
            return mapper;
        }
        
        public static String toJson(Object obj) {
            try {
                return mapper.writeValueAsString(obj);
            } catch (IOException e) {
                logger.error("to json error, ", e);
                return null;
            }
        }
        
        public static <T> T fromJson(String str, Class clazz) {
            try {
                return (T)getJsonObjectMapper().readValue(str, clazz);
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    mapper.readTree 可以读取里面的内容

    JsonNode jsonNode = JsonUtil.getObjectMapper().readTree(content);
            JsonNode jsonStatus = jsonNode.get("aa");
            int status = jsonStatus.getIntValue();
    
            JsonNode jsonResults = jsonNode.get("bb");
            Iterator<JsonNode> elements = jsonResults.getElements();
            while (elements.hasNext()) {
                JsonNode json = elements.next();
                JsonNode jsonName = json.get("cc");
                if(jsonName == null || jsonName.isNull()) {
                    continue;
                }
                String jsonNameStr = jsonName.getTextValue();
                if (StringUtils.isBlank(jsonNameStr)) {
                    continue;
                }
               
              
            }
            return false;
  • 相关阅读:
    LeetCode#13罗马数字转整数
    LeetCode#7整数反转
    LeetCode#1两数之和
    LeetCode#26删除排序数组中的重复项
    LeecCode#1550存在连续三个奇数的数组
    LeetCode#228汇总区间
    LeetCode#1476子矩形查询
    LeetCode#1535找出数组游戏的赢家
    LeetCode#867转置矩阵
    Vue源码——摸着石头过河
  • 原文地址:https://www.cnblogs.com/TheQi/p/11392941.html
Copyright © 2011-2022 走看看