zoukankan      html  css  js  c++  java
  • GsonUtil工具类

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    import com.google.gson.Gson;
    import com.google.gson.GsonBuilder;
    import com.google.gson.JsonArray;
    import com.google.gson.JsonElement;
    import com.google.gson.JsonParser;
    import com.google.gson.reflect.TypeToken;
    
    
    public class GsonUtil {
        //不用创建对象,直接使用Gson.就可以调用方法
        private static Gson gson = null;
        //判断gson对象是否存在了,不存在则创建对象
        static {
            if (gson == null) {
                //gson = new Gson();
    //当使用GsonBuilder方式时属性为空的时候输出来的json字符串是有键值key的,显示形式是"key":null,而直接new出来的就没有"key":null gson= new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create(); } } //无参的私有构造方法 private GsonUtil() { } /** * 将对象转成json格式 * * @param object * @return String */ public static String GsonString(Object object) { String gsonString = null; if (gson != null) { gsonString = gson.toJson(object); } return gsonString; } /** * 将json转成特定的cls的对象 * * @param gsonString * @param cls * @return */ public static <T> T GsonToBean(String gsonString, Class<T> cls) { T t = null; if (gson != null) { //传入json对象和对象类型,将json转成对象 t = gson.fromJson(gsonString, cls); } return t; } /** * json字符串转成list * * @param gsonString * @param cls * @return */ public static <T> List<T> GsonToList(String gsonString, Class<T> cls) { List<T> list = null; if (gson != null) { //根据泛型返回解析指定的类型,TypeToken<List<T>>{}.getType()获取返回类型 list = gson.fromJson(gsonString, new TypeToken<List<T>>() { }.getType()); } return list; }
      /**
         * json字符串转成list
         * 
         * @param gsonString
         * @param cls
         * @return
         */
      
    public static <T> List<T> jsonToList(String json, Class<T> cls) {
       ArrayList<T> mList = new ArrayList<T>();
      JsonArray array = new JsonParser().parse(json).getAsJsonArray();   for(final JsonElement elem : array){    mList.add(gson.fromJson(elem, cls));    }   return mList;
      }
    /** * json字符串转成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; } /** * json字符串转成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; }
    }

     Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象(反序列化),也可以将一个Java对象转成JSON字符串(序列化)。

     除了Java对象外,还可以对其他数据类型进行序列化和反序列化。

    注意: GsonToList这个方法返回值:

     可以使用jsonToList代替实现,返回的是正常的List

    Java对象和JSON之间转化可以参考:Gson详细使用,此Gson非彼Json,你值得拥有~

  • 相关阅读:
    .net core 之Hangfire任务调度
    .net core 在扩展中使用接口实例之IServiceProvider
    .net core webapi 配置swagger调试界面
    c# async/await异步编程死锁的问题
    c# 关于async/await异步编程的浅析和使用
    后端向服务器发送客户端请求--HttpWebRequest
    FluentAPI关系映射配置
    FluentAPI配置
    AutoFac与ASP.NET MVC结合使用
    Log4Net快速配置
  • 原文地址:https://www.cnblogs.com/gczmn/p/8251199.html
Copyright © 2011-2022 走看看