美文网首页
Google的Gson工具类

Google的Gson工具类

作者: EraJieZhang | 来源:发表于2018-12-11 14:01 被阅读0次

    Gson工具类

    简介

    Gson是Google出品的Json解析函数库,可以将JSON字符串反序列化为对应的Java对象,或者反过来将Java对象序列化为对应的字符串,免去了开发者手动通过JSONObject和JSONArray将Json字段逐个进行解析的烦恼,也减少了出错的可能性,增强了代码的质量。使用gson解析时候,对应的Java实体类无需要使用注解进行标记,支持任意复杂Java对象包括没有源代码的对象。

    工具类

    
    /**
     * Created by EraJieZhang on 2018/7/30.
     */
    
    
    public class GsonUtil {
    
    
        private static Gson gson = null;
        static {
            if (gson == null) {
                gson = new Gson();
            }
        }
    
    
        public GsonUtil() {
        }
    
    
    
        /**
         * 将object对象转成json字符串
         *
         * @param object
         * @return
         */
        public static String GsonToString(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;
        }
    
        /**
         * 把一个bean(或者其他的字符串什么的)转成json
         * @param object
         * @return
         */
        public static String BeanToJson(Object object){
            return gson.toJson(object);
        }
    
    }
    

    相关文章

      网友评论

          本文标题:Google的Gson工具类

          本文链接:https://www.haomeiwen.com/subject/dwgshqtx.html