zoukankan      html  css  js  c++  java
  • 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>>>() {
            });
        }
    
    }
  • 相关阅读:
    Postgresql 修改最大连接数到10000(默认2000多)
    Postgresql 当中有四种方式获取当前时间
    postgreSQL数据库limit分页、排序
    mybatis 中标签bool值类型为false判断
    (转)SpringCloud之服务网关Gateway
    Java线程池,isShutDown、isTerminated的作用与区别
    Java线程池的四种用法与使用场景
    (转)Java多线程:彻底搞懂线程池
    算法注意---1、取用数据之前一定要保证数据存在
    算法与数据结构---4.4、最大子段和-分治优化原理
  • 原文地址:https://www.cnblogs.com/leeSmall/p/9114134.html
Copyright © 2011-2022 走看看