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,你值得擁有~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM