类 JsonUtil

java.lang.Object
cn.sinozg.applet.common.utils.JsonUtil

public class JsonUtil extends Object
json 工具类
  • 字段详细资料

    • OM

      protected static final com.fasterxml.jackson.databind.ObjectMapper OM
    • log

      protected static final org.slf4j.Logger log
  • 构造器详细资料

    • JsonUtil

      public JsonUtil()
  • 方法详细资料

    • printerJson

      public static String printerJson(Object obj)
      美化json
      参数:
      obj - 对象
      返回:
      美化后的json
    • toJson

      public static String toJson(Object obj)
      转换为 JSON 字符串
      参数:
      obj - 对象
      返回:
      json
    • toMap

      public static <T> Map<String,T> toMap(String json)
      json 字符串转为map
      参数:
      json - json
      返回:
      map
    • mapPojo

      public static <T> T mapPojo(Map<String,Object> map, Class<T> clazz)
      map转为 bean
      类型参数:
      T - 类型
      参数:
      map - map
      clazz - 类型
      返回:
      bean
    • toPojo

      public static <T> T toPojo(String json, Class<T> clazz)
      转换为 JavaBean
      参数:
      json - json
      clazz - 类型
      返回:
      实体对象
    • toPojo

      public static <T> T toPojo(String json, Function<com.fasterxml.jackson.databind.ObjectMapper,com.fasterxml.jackson.databind.JavaType> function)
      反序列化 嵌套泛型带参数的 示例:

      bean 结构如下:

       
       public class IotResponse<T>
           private T data;
      
      
       public class IotPageResponse<T>
      
           private List<T> list;
      
       public class IotCardInfoResponse
       
      使用方式:

       
         Function<ObjectMapper, JavaType> f = om -> {
                   TypeFactory factory = om.getTypeFactory();
                   JavaType pageType = factory.constructParametricType(IotPageResponse.class, IotCardInfoResponse.class);
                   return factory.constructParametricType(IotResponse.class, pageType);
         };
        IotResponse<IotPageResponse<IotCardInfoResponse>> response = JsonUtil.toPojo(json, f);
       
      类型参数:
      T - 实体
      参数:
      json - json
      function - 获取泛型的函数
      返回:
      结果
    • toPojos

      public static <T> List<T> toPojos(String json, Class<T> clazz)
      转换为 JavaBean 集合
      参数:
      json - json
      clazz - 类型
      返回:
      对象集合
    • nodeBean

      public static <T> T nodeBean(com.fasterxml.jackson.databind.JsonNode node, Class<T> clazz)
      JsonNode 转bean
      类型参数:
      T - 实体对象类型
      参数:
      node - node
      clazz - 类型
      返回:
      实体
    • getCollectionType

      public static com.fasterxml.jackson.databind.JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses)
      获取泛型的 Collection Type
      参数:
      collectionClass - 泛型的Collection
      elementClasses - 元素类
      返回:
      JavaType Java类型
    • key2Val

      public static String key2Val(String json, String key)
      获取json节点的值
      参数:
      json - json
      key - 值
      返回:
      对应的值
    • key2Val

      public static String key2Val(String json, List<JsonNodeInfo> infos)
      获取json节点的值 可以多层获取
      参数:
      json - json
      infos - 每层的信息
      返回:
    • nodeValue

      private static com.fasterxml.jackson.databind.JsonNode nodeValue(com.fasterxml.jackson.databind.JsonNode node, JsonNodeInfo info)
      获取节点信息
      参数:
      node - 节点
      info - 具体信息
      返回:
      node
    • om

      public static com.fasterxml.jackson.databind.ObjectMapper om()
      获取对象
      返回:
      对象
    • toNode

      public static <T extends Serializable> com.fasterxml.jackson.databind.JsonNode toNode(T t)
      对象转 JsonNode
      类型参数:
      T - 类型
      参数:
      t - 入参
      返回:
      node节点