zoukankan      html  css  js  c++  java
  • Android Gson解析json工具类封装

    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;
        }
    
    }
  • 相关阅读:
    Extjs combobox设置默认值
    sql 游标循环遍历
    .NET中的DES对称加密
    Asp.Net生命周期
    浅谈C#随机数发生器
    面向对象-多态 附抽象
    c#常用的一些命名空间
    c#面向对象编程基础
    string应用
    [自习任我行]第二阶段任务跟踪10
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/7286286.html
Copyright © 2011-2022 走看看