如何处理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;

 

posted @ 2019-08-22 10:41  TheQi  阅读(614)  评论(0编辑  收藏  举报