如果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]