如何在 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]
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP