New file |
| | |
| | | package com.dsh.other.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; |
| | | } |
| | | |
| | | } |