spring自带 Jackson转换工具类
package com.yonyou.convert.common.utils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* @Description: spring自带 Jackson转换工具类
* @ClassName: JacksonUtil
* @Author zhaomxr
* @Date 2021-08-22 19:56
*/
@Slf4j
public class JacksonUtil {
/**
* 日期格式
**/
private static String DATE_FORMATE = "yyyy-mm-dd HH:mm:ss";
/**
* jackson 解析JSON方法 ObjectMapper
**/
private static ObjectMapper objectMapper = new ObjectMapper();
static {
objectMapper.setDateFormat(new SimpleDateFormat(DATE_FORMATE));
// 值为null,不抛出异常
objectMapper.configure(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES, false);
// 忽略转换中多余属性
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
/**
* json字符串转Map
*
* @param jsonStr
* @return
*/
public static Map jsonStringToMap(String jsonStr) {
if (Strings.isNullOrEmpty(jsonStr)) {
return Maps.newHashMapWithExpectedSize(0);
}
try {
return objectMapper.readValue(jsonStr, Map.class);
} catch (JsonProcessingException e) {
log.info("{}", e);
return Maps.newHashMapWithExpectedSize(0);
}
}
/**
* Object转Json字符串
*
* @param object
* @return
*/
public static String toJsonString(Object object) {
if (Objects.isNull(object)) {
return "";
}
try {
return objectMapper.writeValueAsString(object);
} catch (JsonProcessingException e) {
log.info("{}", e);
return "";
}
}
/**
* Json字符串转Java实体bean
*
* @param jsonStr
* @param tClass
* @return
*/
public static <T> T jsonStringToBean(String jsonStr, Class<T> tClass) {
if (Strings.isNullOrEmpty(jsonStr)) {
return null;
}
try {
return objectMapper.readValue(jsonStr, tClass);
} catch (JsonProcessingException e) {
log.info("{}", e);
return null;
}
}
/**
* Json字符串转List(返回指定bean T)
*
* @param jsonStr
* @param tClass
* @return
*/
public static <T> List<T> jsonStringToListBean(String jsonStr, Class<T> tClass) {
if (Strings.isNullOrEmpty(jsonStr)) {
return null;
}
try {
return objectMapper.readValue(jsonStr, new TypeReference<List<T>>() {
});
} catch (JsonProcessingException e) {
log.info("{}", e);
return null;
}
}
/**
* Json字符串转List(返回指定泛型)
*
* @param jsonStr
* @param tClass
* @return
*/
public static List<?> jsonStringToList(String jsonStr, Class<?> tClass) {
if (Strings.isNullOrEmpty(jsonStr)) {
return Lists.newArrayListWithCapacity(0);
}
try {
return (List<?>) objectMapper.readValue(jsonStr, List.class);
} catch (JsonProcessingException e) {
log.info("{}", e);
return Lists.newArrayListWithCapacity(0);
}
}
}