基于Gson封装的Java json工具类

Gson版本: 2.8.5

点击这里查看: fastjson版本Json解析工具封装

代码

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;

import java.util.List;
import java.util.Map;

/**
 * 基于Gson封装工具
 *
 * @author videomonster
 * @since 1.0.0
 */
public final class JsonUtil {

    private static Gson gson;

    static {
        gson = new GsonBuilder()
                // 对value为null的属性也进行序列化
//                .serializeNulls()
                .setDateFormat("yyyy-MM-dd HH:mm:ss")
                .create();
    }

    /**
     * 获取GsonBuilder实例
     *
     * @return
     */
    public static GsonBuilder builder() {
        return new GsonBuilder();
    }

    /**
     * 将对象转为json字符串
     *
     * @param object
     * @return
     */
    public static String toJson(Object object) {
        String json = null;
        if (gson != null) {
            json = gson.toJson(object);
        }
        return json;
    }

    /**
     * 将json字符串转为指定类型的实例
     *
     * @param json
     * @param cls
     * @param 
     * @return
     */
    public static  T parse(String json, Class cls) {
        T t = null;
        if (gson != null) {
            t = gson.fromJson(json, cls);
        }
        return t;
    }

    /**
     * 将json转为Map
     *
     * @param json
     * @param 
     * @return
     */
    public static  Map toMap(String json) {
        Map map = null;
        if (gson != null) {
            map = gson.fromJson(json, new TypeToken>() {
            }.getType());
        }
        return map;
    }

    /**
     * 将json转为指定类型的List
     *
     * @param json
     * @param cls
     * @param 
     * @return
     */
    public static  List toList(String json, Class cls) {
        List list = null;
        if (gson != null) {
            // 根据泛型返回解析指定的类型,TypeToken>{}.getType()获取返回类型
            list = gson.fromJson(json, new TypeToken>() {
            }.getType());
        }
        return list;
    }

    /**
     * 将json转为Map List
     *
     * @param json
     * @param 
     * @return
     */
    public static  List> toMapList(String json) {
        List> list = null;
        if (gson != null) {
            list = gson.fromJson(json,
                    new TypeToken>>() {
                    }.getType());
        }
        return list;
    }
}

你可能感兴趣的:(基于Gson封装的Java json工具类)