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>>>() {
            });
        }
    
    }
  • 相关阅读:
    MFC project for a non-Unicode character set is deprecated
    关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法
    字符串比较自实现
    各种语言里获取当前模块的方法:ABAP,ABSL,C,nodejs
    SAP CRM product attachment的document template功能
    ABAP, UI5和webpack的处理入口
    ABAP, Maven, CF App和Webpack的build
    json格式的字符串序列化和反序列化的一些高级用法
    SAP ABAP Netweaver容器化, 不可能完成的任务吗?
    UI Component in CRM WebUI and Hybris
  • 原文地址:https://www.cnblogs.com/leeSmall/p/9114134.html
Copyright © 2011-2022 走看看