Class JacksonProvider

  • All Implemented Interfaces:
    JsonProvider

    public class JacksonProvider
    extends Object
    implements JsonProvider
    基于Jackson(2.x)实现
    如需自定义ObjectMapper,可重写 getMapper() ()} 方法
    Author:
    Pan
    • Constructor Detail

      • JacksonProvider

        public JacksonProvider()
        默认构造函数
    • Method Detail

      • parseObject

        public <T> T parseObject​(String json,
                                 Class<T> clazz)
        Description copied from interface: JsonProvider
        将JSON字符串转换为指定JavaBean
        Specified by:
        parseObject in interface JsonProvider
        Type Parameters:
        T - 数据类型
        Parameters:
        json - JSON字符串
        clazz - 目标Java类型
        Returns:
        T 解析后的对象实例
      • parseObject

        public <T> T parseObject​(String json,
                                 TypeReference<T> typeRef)
        Description copied from interface: JsonProvider
        将JSON字符串转换为带泛型的复杂类型,用TypeReference避免擦除
        Specified by:
        parseObject in interface JsonProvider
        Type Parameters:
        T - 数据类型
        Parameters:
        json - JSON字符串
        typeRef - 目标类型引用
        Returns:
        T 解析后的对象实例
      • parseArray

        public <T> List<T> parseArray​(String json,
                                      Class<T> clazz)
        Description copied from interface: JsonProvider
        将JSON数组字符串转换为指定元素类型的List
        Specified by:
        parseArray in interface JsonProvider
        Type Parameters:
        T - 元素类型
        Parameters:
        json - JSON数组字符串
        clazz - 元素Java类型
        Returns:
        List 元素列表;若为空数组返回空列表
      • parseToMap

        public Map<String,​Object> parseToMap​(String json)
        Description copied from interface: JsonProvider
        将JSON对象字符串解析为HashMap
        内部所有嵌套容器均为标准Java类型
        Map的值类型为Object需自行转换
        Specified by:
        parseToMap in interface JsonProvider
        Parameters:
        json - JSON对象字符串
        Returns:
        Map 解析后的Map
      • parseToLinkedMap

        public Map<String,​Object> parseToLinkedMap​(String json)
        Description copied from interface: JsonProvider
        将JSON对象字符串解析为LinkedHashMap
        内部所有嵌套容器均为标准Java类型
        Map的值类型为Object需自行转换
        Specified by:
        parseToLinkedMap in interface JsonProvider
        Parameters:
        json - JSON对象字符串
        Returns:
        Map 保持插入顺序的Map
      • parseToSortedMap

        public SortedMap<String,​Object> parseToSortedMap​(String json)
        Description copied from interface: JsonProvider
        将JSON对象字符串解析为SortedMap(按键自然排序)
        内部所有嵌套容器均为标准Java类型
        Map的值类型为Object需自行转换
        Specified by:
        parseToSortedMap in interface JsonProvider
        Parameters:
        json - JSON对象字符串
        Returns:
        SortedMap 按键排序的Map
      • parseToListMap

        public List<Map<String,​Object>> parseToListMap​(String json)
        Description copied from interface: JsonProvider
        将JSON数组字符串解析为List<Map<String, Object>>
        每个集合中的元素为标准Map,等价于parseObject(json, new TypeReference<List<Map<String, Object>>>(){})
        内部所有嵌套容器均为标准Java类型
        Specified by:
        parseToListMap in interface JsonProvider
        Parameters:
        json - JSON数组字符串
        Returns:
        List Map列表;若为空数组返回空列表
      • to

        public <T> T to​(Object obj,
                        Class<T> clazz)
        Description copied from interface: JsonProvider
        将指定对象转换为指定目标类型的对象
        Specified by:
        to in interface JsonProvider
        Type Parameters:
        T - 目标类型
        Parameters:
        obj - 指定要转换的对象
        clazz - 指定的目标类
        Returns:
        T 返回转换对象类型T
      • toJson

        public String toJson​(Object obj)
        Description copied from interface: JsonProvider
        将Java对象序列化为JSON字符串(支持对象、List、Map等)
        Specified by:
        toJson in interface JsonProvider
        Parameters:
        obj - 待序列化对象
        Returns:
        String JSON字符串
      • toJsonBytes

        public byte[] toJsonBytes​(Object obj)
        Description copied from interface: JsonProvider
        将Java对象序列化为UTF-8,JSON字节数组,List输出标准数组格式
        Specified by:
        toJsonBytes in interface JsonProvider
        Parameters:
        obj - 待序列化对象(通常为List或Bean)
        Returns:
        byte[] JSON字节数组
      • hasJson

        public boolean hasJson​(String str)
        Description copied from interface: JsonProvider
        验证字符串是否为合法JSON(不限制对象/数组类型)
        Specified by:
        hasJson in interface JsonProvider
        Parameters:
        str - 待验证字符串
        Returns:
        boolean true 表示合法JSON
      • hasJsonArray

        public boolean hasJsonArray​(String str)
        Description copied from interface: JsonProvider
        验证字符串是否为合法JSON数组(以 [ 开头且结构正确)
        Specified by:
        hasJsonArray in interface JsonProvider
        Parameters:
        str - 待验证字符串
        Returns:
        boolean true 表示合法JSON数组
      • hasJsonObject

        public boolean hasJsonObject​(String str)
        Description copied from interface: JsonProvider
        验证字符串是否为合法JSON对象(以 {} 开头且结构正确)
        Specified by:
        hasJsonObject in interface JsonProvider
        Parameters:
        str - 待验证字符串
        Returns:
        boolean true 表示合法JSON对象
      • getMapper

        protected com.fasterxml.jackson.databind.ObjectMapper getMapper()
        获取ObjectMapper
        默认返回全局单例,子类可重写以提供自定义映射器
        Returns:
        ObjectMapper