public class JsonUtils {
private static ObjectMapper objectMapper;
public static ObjectMapper getObjectMapper(){ if (objectMapper == null) { ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(MapperFeature.AUTO_DETECT_CREATORS, false); objectMapper.configure(MapperFeature.AUTO_DETECT_FIELDS, false); objectMapper.configure(MapperFeature.AUTO_DETECT_GETTERS, true); objectMapper.configure(MapperFeature.AUTO_DETECT_SETTERS, true); objectMapper.configure(MapperFeature.AUTO_DETECT_IS_GETTERS, true); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); //20200422 空string2null objectMapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT,true); objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); // objectMapper.configure(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS, false); objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true); objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); // objectMapper.configure(DeserializationFeature.USE_JAVA_ARRAY_FOR_JSON_ARRAY, true); // objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES); } return objectMapper; }
public static Map string2Map(String str){ try { return objectMapper.readValue(str, Map.class); } catch (IOException e) { return null; } }
public static <T> String bean2Json(T bean) {
try {
return getObjectMapper().writeValueAsString(bean);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static String map2Json(Map map) {
try {
return getObjectMapper().writeValueAsString(map);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static String list2Json(List list) {
try {
return getObjectMapper().writeValueAsString(list);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static <T> T json2Bean(String json, Class<T> beanClass) {
try {
return getObjectMapper().readValue(json, beanClass);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static <T> List<T> json2List(String json, Class<T> beanClass) {
try {
return (List<T>) getObjectMapper().readValue(json, getCollectionType(List.class, beanClass));
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static Map json2Map(String json) {
try {
return (Map) getObjectMapper().readValue(json, Map.class);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {
return getObjectMapper().getTypeFactory().constructParametricType(collectionClass, elementClasses);
}
}