| package com.dsh.course.util; | 
|   | 
| import com.alibaba.fastjson.JSON; | 
| import com.alibaba.fastjson.serializer.SerializerFeature; | 
| import com.fasterxml.jackson.core.JsonProcessingException; | 
| import com.fasterxml.jackson.databind.JavaType; | 
| import com.fasterxml.jackson.databind.JsonNode; | 
| import com.fasterxml.jackson.databind.ObjectMapper; | 
|   | 
| import java.text.SimpleDateFormat; | 
| import java.util.HashMap; | 
| import java.util.Iterator; | 
| import java.util.List; | 
| import java.util.Map; | 
|   | 
| /** | 
|  * 返回json数据封装工具类 | 
|  * | 
|  * @ClassName: JsonUtil | 
|  * @author: yuds | 
|  * @date: 2019-09-20 09:19:27 | 
|  * @version: V1.0.0 | 
|  */ | 
| public class JsonUtil { | 
|   | 
|     /** | 
|      * <li>将对象转化为json输出 | 
|      * <li>QuoteFieldNames ———-输出key时是否使用双引号,默认为true | 
|      * <li>WriteMapNullValue ——–是否输出值为null的字段,默认为false | 
|      * <li>WriteNullNumberAsZero —-数值字段如果为null,输出为0,而非null | 
|      * <li>WriteNullListAsEmpty —–List字段如果为null,输出为[],而非null | 
|      * <li>WriteNullStringAsEmpty —字符类型字段如果为null,输出为”“,而非null | 
|      * <li>WriteNullBooleanAsFalse –Boolean字段如果为null,输出为false,而非null | 
|      * <li>DisableCircularReferenceDetect 禁止循环引用检测 | 
|      */ | 
|     private static SerializerFeature[] serializerFeaturess = {SerializerFeature.WriteMapNullValue, | 
|             SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullListAsEmpty, | 
|             SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullBooleanAsFalse, | 
|             SerializerFeature.DisableCircularReferenceDetect,}; | 
|   | 
|     private JsonUtil() { | 
|   | 
|     } | 
|   | 
|     /** | 
|      * fastJson Object转json | 
|      * | 
|      * @param obj | 
|      * @return | 
|      */ | 
|     public static String objToJson(Object obj) { | 
|         return JSON.toJSONString(obj, serializerFeaturess); | 
|     } | 
|   | 
|     /** | 
|      * fastJson Object转json | 
|      * | 
|      * @param obj | 
|      * @param dateFormat 时间格式化 | 
|      * @return | 
|      */ | 
|     public static String objToJson(Object obj, String dateFormat) { | 
|         return JSON.toJSONStringWithDateFormat(obj, dateFormat, serializerFeaturess); | 
|     } | 
|   | 
|     // 定义jackson对象 | 
|     private static final ObjectMapper MAPPER = new ObjectMapper(); | 
|   | 
|     /** | 
|      * 将对象转换成json字符串。 | 
|      * <p> | 
|      * Title: pojoToJson | 
|      * </p> | 
|      * <p> | 
|      * Description: | 
|      * </p> | 
|      * | 
|      * @param data | 
|      * @return | 
|      */ | 
|     public static String objectToJson(Object data) { | 
|         try { | 
|             SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm"); | 
|             MAPPER.setDateFormat(fmt); | 
|             String string = MAPPER.writeValueAsString(data); | 
|             return string; | 
|         } catch (JsonProcessingException e) { | 
|             e.printStackTrace(); | 
|         } | 
|         return null; | 
|     } | 
|   | 
|     /** | 
|      * 将json结果集转化为对象 | 
|      * | 
|      * @param jsonData json数据 | 
|      * @param beanType 对象中的object类型 | 
|      * @return | 
|      */ | 
|     public static <T> T jsonToPojo(String jsonData, Class<T> beanType) { | 
|         try { | 
|             T t = MAPPER.readValue(jsonData, beanType); | 
|             return t; | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|         } | 
|         return null; | 
|     } | 
|   | 
|     /** | 
|      * 将json数据转换成pojo对象list | 
|      * <p> | 
|      * Title: jsonToList | 
|      * </p> | 
|      * <p> | 
|      * Description: | 
|      * </p> | 
|      * | 
|      * @param jsonData | 
|      * @param beanType | 
|      * @return | 
|      */ | 
|     public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) { | 
|         JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType); | 
|         try { | 
|             List<T> list = MAPPER.readValue(jsonData, javaType); | 
|             return list; | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|         } | 
|   | 
|         return null; | 
|     } | 
|   | 
|     public static JsonNode jsonToNode(String jsonData) { | 
|         try { | 
|             return MAPPER.readTree(jsonData); | 
|         } catch (Exception ex) { | 
|             ex.printStackTrace(); | 
|         } | 
|         return null; | 
|     } | 
|   | 
|     public static Map<String, String> jsonToMap(String json) { | 
|         JsonNode nodes = jsonToNode(json); | 
|         Iterator<Map.Entry<String, JsonNode>> fields = nodes.fields(); | 
|         Map<String, String> map = new HashMap<>(); | 
|         while (fields.hasNext()) { | 
|             Map.Entry<String, JsonNode> next = fields.next(); | 
|             String value = next.getValue().asText(""); | 
|             map.put(next.getKey(), value); | 
|         } | 
|         return map; | 
|     } | 
|   | 
| } |