如何在 Java 中使用 Gson 庫序列化和反序列化泛型型別?


如果一個 Java 類是一個泛型型別,並且我們正在將它與 Gson 庫一起用於 JSON 序列化反序列化。Gson 庫提供了一個名為 com.google.gson.reflect.TypeToken 的類,透過建立一個 Gson TypeToken 類並傳遞類型別來儲存泛型型別。使用此型別,Gson 可以知道泛型類中傳遞的類。

語法

public class TypeToken<T> extends java.lang.Object

示例

import java.lang.reflect.Type;
import java.util.*;
import com.google.gson.*;
import com.google.gson.reflect.*;
public class GenericTypesJSONTest {
   public static void main(String[] args) {
      Gson gson = new GsonBuilder().setPrettyPrinting().create();
      List<String> list = Arrays.asList("INDIA", "AUSTRALIA", "ENGLAND", "SOUTH AFRICA");
      String jsonStr = gson.toJson(list);
      System.out.println(jsonStr);
      Type listType = new TypeToken<List<String>>() {}.getType();
      list = gson.fromJson(jsonStr, listType);
      System.out.println(list);
   }
}

輸出

[
   "INDIA",
   "AUSTRALIA",
   "ENGLAND",
   "SOUTH AFRICA"
]
[INDIA, AUSTRALIA, ENGLAND, SOUTH AFRICA]

更新於:2020 年 7 月 4 日

1K+ 次瀏覽

開始您的 職業生涯

透過完成課程獲得認證

開始吧
廣告