package com.qs.serve.common.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializeConfig; import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer; import com.alibaba.fastjson.support.config.FastJsonConfig; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.qs.serve.common.framework.interceptor.LocalDateTimeFormatSerializer; import lombok.experimental.UtilityClass; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * Jackson json序列化和反序列化工具类 * @Author JcYen * @Date 2019/6/3 * @Version 1.0 */ @UtilityClass public class JsonUtil { /** * jackson对象 */ static final ObjectMapper MAPPER = new ObjectMapper(); static { MAPPER.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true); MAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL); MAPPER.registerModule(new JavaTimeModule()); } /** * 将对象转换成json字符串。 */ public static String objectToJson(Object data) { try { String string = MAPPER.writeValueAsString(data); return string; } catch (JsonProcessingException e) { e.printStackTrace(); } return null; } /** * 将json结果集转化为对象 * * @param jsonData json数据 * @param beanType 对象中的object类型 */ public static T jsonToPojo(String jsonData, Class beanType) { try { T t = MAPPER.readValue(jsonData, beanType); return t; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 将json数据转换成pojo对象list */ public static List jsonToList(String jsonData, Class beanType) { JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType); try { List list = MAPPER.readValue(jsonData, javaType); return list; } catch (Exception e) { e.printStackTrace(); } return null; } public static Map jsonToMap(String jsonStr){ Map json = JSONObject.parseObject(jsonStr, Map.class); return json; } public static Map objectToMap(Object object){ // 创建SerializeConfig对象,并设置日期时间的格式 SerializeConfig config = new SerializeConfig(); LocalDateTimeFormatSerializer dateFormatSerializer = new LocalDateTimeFormatSerializer(); config.put(LocalDateTime.class, dateFormatSerializer); String jsonString = JSON.toJSONString(object, config); Map map = JSONObject.parseObject(jsonString); return map; } public static List> listToMap(List objects){ List> result = new ArrayList<>(); for (T object : objects) { Map map = objectToMap(object); result.add(map); } return result; } }