JAVA_Gson解析json工具类封装

来源:互联网 发布:大数据 元数据 编辑:程序博客网 时间:2024/06/11 00:52
package com.springSecurity.gson;import java.util.ArrayList;import java.util.List;import java.util.Map;import com.google.gson.Gson;import com.google.gson.JsonArray;import com.google.gson.JsonElement;import com.google.gson.JsonParser;import com.google.gson.reflect.TypeToken;/** *  * @author jiangminyan * @date   2016年10月17日 */public class GsonUtil {private static Gson gson = null;    static {        if (gson == null) {            gson = new Gson();        }    }    private GsonUtil() {    }    /**     * 将object对象转成json字符串     *      * @param object     * @return     */    public static String GsonString(Object object) {        String gsonString = null;        if (gson != null) {            gsonString = gson.toJson(object);        }        return gsonString;    }    /**     * 将gsonString转成泛型bean     *      * @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;    }   /**     * 转成list     * 泛型在编译期类型被擦除导致报错     * @param gsonString     * @param cls     * @return     */    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;    }    /**     * 转成list     * 解决泛型问题     * @param json     * @param cls     * @param <T>     * @return     */    public static <T> List<T> jsonToList(String json, Class<T> cls) {        Gson gson = new Gson();        List<T> list = new ArrayList<T>();        JsonArray array = new JsonParser().parse(json).getAsJsonArray();        for(final JsonElement elem : array){            list.add(gson.fromJson(elem, cls));        }        return list;    }    /**     * 转成list中有map的     *      * @param gsonString     * @return     */    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;    }    /**     * 转成map的     *      * @param gsonString     * @return     */    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;    }}

0 0