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>>>() {
        });
    }

}

原文地址:https://www.cnblogs.com/leeSmall/p/9114134.html

时间: 2024-10-25 17:17:19

Json转换工具类(基于google的Gson和阿里的fastjson)的相关文章

java处理json的工具类(list,map和json的之间的转换)

需要下载第三方的jar :net.sf.json import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import java

Json与javaBean之间的转换工具类

Json与javaBean之间的转换工具类 /**  * Json与javaBean之间的转换工具类  *  * @author 晚风工作室 www.soservers.com  * @version 20111221  *  * {@code 现使用json-lib组件实现  *    需要  *     json-lib-2.4-jdk15.jar  *     ezmorph-1.0.6.jar  *     commons-collections-3.1.jar  *     commo

Json解析工具类

这篇文章我是怀着无比激动的心情写得,为啥为啥?因为都要放假了!你们的小心心是不是已经躁动不安了!族长考虑到现在离高速免费通行还有几个小时,大家也闲来无事,在下就写点让小伙伴们打发打发时间!今天我们就看一点通过Gson-2.3.1.jar封装的工具类!希望有助于你(温馨提醒:别看的忘了游玩出行的时间哦~~) 工具类 package com.sunfreeter.util; import com.google.gson.Gson;import com.google.gson.JsonElement;

处理json的工具类({本类为处理json的工具类})

<jackson.version>2.2.3</jackson.version> <!-- json --> <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.3</version> <classifier>jdk15</classif

Android Bitmap与DrawAble与byte[]与InputStream之间的转换工具类【转】

package com.soai.imdemo; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.grap

常用的Java字符转换工具类

该类里包含了Java中常用的字符串处理方法,如日期处理.金额转换... ----------------------------------------------------------------------------------------- import java.math.BigDecimal;import java.sql.Timestamp;import java.text.SimpleDateFormat;import java.util.Calendar;import jav

分享万能java字符串编码转换工具类

代码下载地址:http://www.zuidaima.com/share/1795356301560832.htm 原文:分享万能java字符串编码转换工具类 package com.zuidaima.util; import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US.Unicode字符集的基本拉丁块 */ publ

HBaseConvetorUtil 实体转换工具类

HBaseConvetorUtil 实体转换工具类 public class HBaseConvetorUtil { /** * @Title: convetor * @Description: 传入hbase返回结果值,返回实例集合 * @param * @return * @throws */ public static <T> List<T>convetor(Class<T> cla,ResultScanner resultScanner) throws Exce

(转)Android中px与dip,sp与dip等的转换工具类

功能 通常在代码中设置组件或文字大小只能用px,通过这个工具类我们可以把dip(dp)或sp为单位的值转换为以px为单位的值而保证大小不变.方法中的参数请参考http://www.cnblogs.com/wader2011/archive/2011/11/28/2266669.html 代码 /** * Android大小单位转换工具类 *  * @author wader *  */public class DisplayUtil { /**  * 将px值转换为dip或dp值,保证尺寸大小不