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;