• Json转换工具类(基于google的Gson和阿里的fastjson)


    在项目之中我们经常会涉及到字符串和各种对象的转换,为此特地整理了一下常用的转换方法

    一、基于com.google.code.gson封装的json转换工具类

     1. 在pom.xml文件里面引入gson的依赖

            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.8.3</version>
            </dependency>

    2. 编写工具类GsonUtil

    package com.json.util;
    
    import com.google.gson.Gson;
    import com.google.gson.reflect.TypeToken;
    
    import java.util.List;
    import java.util.Map;
    
    /**
     * 
     * @Description: 基于com.google.code.gson封装的json转换工具类
     * @author lgs
     * @date 2018年5月30日
     *
     */
    public class GsonUtil {
        private static Gson gson = null;
        static {
            if (gson == null) {
                gson = new Gson();
            }
        }
    
        private GsonUtil() {
        }
    
        /**
         * 对象转成json
         *
         * @param object
         * @return json
         */
        public static String gsonString(Object object) {
            String gsonString = null;
            if (gson != null) {
                gsonString = gson.toJson(object);
            }
            return gsonString;
        }
    
        /**
         * Json转成对象
         *
         * @param gsonString
         * @param cls
         * @return 对象
         */
        public static <T> T gsonToBean(String gsonString, Class<T> cls) {
            T t = null;
            if (gson != null) {
                t = gson.fromJson(gsonString, cls);
            }
            return t;
        }
    
        /**
         * json转成list<T>
         *
         * @param gsonString
         * @param cls
         * @return list<T>
         */
        public static <T> List<T> gsonToList(String gsonString, Class<T> cls) {
            List<T> list = null;
            if (gson != null) {
                list = gson.fromJson(gsonString, new TypeToken<List<T>>() {
                }.getType());
            }
            return list;
        }
    
        /**
         * json转成list中有map的
         *
         * @param gsonString
         * @return List<Map<String, T>>
         */
        public static <T> List<Map<String, T>> gsonToListMaps(String gsonString) {
            List<Map<String, T>> list = null;
            if (gson != null) {
                list = gson.fromJson(gsonString, new TypeToken<List<Map<String, T>>>() {
                }.getType());
            }
            return list;
        }
    
        /**
         * json转成map的
         *
         * @param gsonString
         * @return Map<String, T>
         */
        public static <T> Map<String, T> gsonToMaps(String gsonString) {
            Map<String, T> map = null;
            if (gson != null) {
                map = gson.fromJson(gsonString, new TypeToken<Map<String, T>>() {
                }.getType());
            }
            return map;
        }
    }

    二、基于阿里的fastjson封装的json转换工具类

    1. 在pom.xml文件里面引入fastjson的依赖

            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.4</version>
            </dependency> 

    2. 编写工具类FastJsonUtils 

    package com.json.util;
    
    import java.util.List;
    import java.util.Map;
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.TypeReference;
    /**
     * 
     * @Description: 基于fastjson封装的json转换工具类
     * @author lgs
     * @date 2018年5月30日
     *
     */
    public class FastJsonUtils {
    
    
        /**
         * 功能描述:把JSON数据转换成指定的java对象
         * @param jsonData JSON数据
         * @param clazz 指定的java对象
         * @return 指定的java对象
         */
        public static <T> T getJsonToBean(String jsonData, Class<T> clazz) {
            return JSON.parseObject(jsonData, clazz);
        }
    
        /**
         * 功能描述:把java对象转换成JSON数据
         * @param object java对象
         * @return JSON数据
         */
        public static String getBeanToJson(Object object) {
            return JSON.toJSONString(object);
        }
    
        /**
         * 功能描述:把JSON数据转换成指定的java对象列表
         * @param jsonData JSON数据
         * @param clazz 指定的java对象
         * @return List<T>
         */
        public static <T> List<T> getJsonToList(String jsonData, Class<T> clazz) {
            return JSON.parseArray(jsonData, clazz);
        }
    
        /**
         * 功能描述:把JSON数据转换成较为复杂的List<Map<String, Object>>
         * @param jsonData JSON数据
         * @return List<Map<String, Object>>
         */
        public static List<Map<String, Object>> getJsonToListMap(String jsonData) {
            return JSON.parseObject(jsonData, new TypeReference<List<Map<String, Object>>>() {
            });
        }
    
    }
  • 相关阅读:
    洛谷P1026 统计单词个数【区间dp】
    洛谷P1417 烹调方案【dp】
    ArcEngine不同种类的工作空间建立查询ICursor时“超出系统资源”
    解释器模式
    设计模式6大原则简述
    访问者模式
    享元模式
    中介者模式
    职责链模式
    GridControl/GridView的分组操作
  • 原文地址:https://www.cnblogs.com/leeSmall/p/9114134.html
Copyright © 2020-2023  润新知