如何在 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]
廣告