类 JSONUtils


  • public final class JSONUtils
    extends Object
    Json序列化与反序列化工具,使用了jackson作为工具包,优化时主要参考官方文档
    版本:
    1.0
    作者:
    captain
    另请参阅:
    Jackson-Performance
    以下列举的优化点重要程度递减
    1.重用重量级对象: ObjectMapper (data-binding) 已实现
    2.Close things that need to be closed: JsonParser, JsonGenerator 未用到
    3.输入输出尽量选择字节流,避免二次转换 已实现 文档中还说要进一步优化,可以关注下面四点 1.Compatible, not so easy: Use the Streaming API 2.Non-compatible, easy: Smile binary "JSON" 3.Non-compatible, easy: POJOs as JSON Arrays (Jackson 2.1) 4.Compatible, easy: Afterburner
    • 构造器详细资料

      • JSONUtils

        public JSONUtils()
    • 方法详细资料

      • getInstance

        public static com.fasterxml.jackson.databind.ObjectMapper getInstance()
      • obj2ByteArray

        public static byte[] obj2ByteArray​(Object obj)
                                    throws com.fasterxml.jackson.core.JsonProcessingException
        抛出:
        com.fasterxml.jackson.core.JsonProcessingException
      • obj2json

        public static String obj2json​(Object obj)
                               throws com.fasterxml.jackson.core.JsonProcessingException
        javaBean,list,array convert to json string/对象转JSON字符串
        参数:
        obj - 需转换的对象
        返回:
        转换得到的JSON字符串
        抛出:
        com.fasterxml.jackson.core.JsonProcessingException
      • obj2PrettyJson

        public static String obj2PrettyJson​(Object obj)
                                     throws com.fasterxml.jackson.core.JsonProcessingException
        抛出:
        com.fasterxml.jackson.core.JsonProcessingException
      • json2pojo

        public static <T> T json2pojo​(String jsonStr,
                                      Class<T> clazz)
                               throws IOException
        json string convert to javaBean/JSON字符串转普通对象
        参数:
        jsonStr - JSON字符串
        clazz - 目标对象类型
        返回:
        转换得到的对象
        抛出:
        IOException
      • json2pojo

        public static <T> T json2pojo​(String json,
                                      Class<T> entityClass,
                                      Class... itemClass)
                               throws IOException
        JSON字符串转为复杂对象(list,map等)
        参数:
        json - JSON字符串
        entityClass - 目标对象
        itemClass - List/Map保存的数据的类型
        返回:
        转换得到的对象
        抛出:
        IOException
      • json2map

        public static <T> Map<String,​Object> json2map​(String jsonStr)
                                                     throws IOException
        json string convert to map/JSON字符串转MAP
        参数:
        jsonStr - JSON字符串
        返回:
        转换得到的MAP
        抛出:
        IOException
      • jsonToMap

        public static <T> Map<String,​T> jsonToMap​(String jsonStr)
                                                 throws IOException
        json string convert to map/JSON字符串转MAP
        参数:
        jsonStr - JSON字符串
        返回:
        转换得到的MAP
        抛出:
        IOException
      • json2map

        public static <T> Map<String,​T> json2map​(String jsonStr,
                                                       Class<T> clazz)
                                                throws IOException
        json string convert to map with javaBean/JSON转MAP
        参数:
        jsonStr - JSON字符串
        clazz - MAP中值的类型
        返回:
        转换得到的MAP
        抛出:
        IOException
      • json2list

        public static <T> List<T> json2list​(String jsonArrayStr,
                                            Class<T> clazz)
                                     throws IOException
        json array string convert to list with javaBean/JSON字符串转List
        参数:
        jsonArrayStr - JSON字符串
        clazz - List存储的对象类型
        返回:
        转换后得到的List
        抛出:
        IOException
      • map2pojo

        public static <T> T map2pojo​(Map map,
                                     Class<T> clazz)
        map convert to javaBean/map转javabean
        参数:
        map - 需转化的MAP
        clazz - 目标类型
        返回:
        得到的目标对象