常用工具类之 GsonUtil

public class GsonUtil {

    private static final Gson gson = new Gson();

    /**
     * 转成 Json 字符串
     */
    public static String toJson(Object object) {
        return gson.toJson(object);
    }

    /**
     * Json 转 JavaBean 对象
     */
    public static <T> T toBean(String json, Class<T> beanClass) {
        return gson.fromJson(json, beanClass);
    }

    /**
     * Json 转 List 集合
     */
    public static <T> List<T> toList(String json) {
        Type type = new TypeToken<List<T>>() {
        }.getType();
        return gson.fromJson(json, type);
    }


    /**
     * Json 转 List 集合
     * 遇到解析不了的,尝试使用这个
     */
    public static <T> List<T> toListExt(String json, Class<T> clz) {
        List<T> mList = new ArrayList<>();
        JsonArray array = new JsonParser().parse(json).getAsJsonArray();
        Gson mGson = new Gson();
        for (final JsonElement elem : array) {
            mList.add(mGson.fromJson(elem, clz));
        }
        return mList;
    }


    /**
     * Json 转换成 Map 的 List 集合对象
     *
     * @param json json 字符串
     */
    public static <T> List<Map<String, T>> toListMap(String json) {
        Type type = new TypeToken<List<Map<String, T>>>() {
        }.getType();
        return gson.fromJson(json, type);
    }

    /**
     * Json 转 Map 对象
     *
     * @param json json 字符串
     */
    public static <T> Map<String, T> toMap(String json) {
        Type type = new TypeToken<Map<String, T>>() {
        }.getType();
        return gson.fromJson(json, type);
    }
}

posted @ 2022-11-09 23:57  今天代码写完了吗  阅读(344)  评论(0编辑  收藏  举报