使用 Gson 将 JSON 解析为通用类对象
假设我们有一个 JSON 字符串:
["first","second","third"]
我们可以将这个 JSON 字符串解析为 String
数组:
Gson gson = new Gson();
String jsonArray = "[\"first\",\"second\",\"third\"]";
String[] strings = gson.fromJson(jsonArray, String[].class);
但是如果我们想将它解析为 List<String>
对象,我们必须使用 TypeToken
。
这是样本:
Gson gson = new Gson();
String jsonArray = "[\"first\",\"second\",\"third\"]";
List<String> stringList = gson.fromJson(jsonArray, new TypeToken<List<String>>() {}.getType());
假设我们有以下两个类:
public class Outer<T> {
public int index;
public T data;
}
public class Person {
public String firstName;
public String lastName;
}
我们有一个 JSON 字符串,应该解析为 Outer<Person>
对象。
此示例显示如何将此 JSON 字符串解析为相关的泛型类对象:
String json = "......";
Type userType = new TypeToken<Outer<Person>>(){}.getType();
Result<User> userResult = gson.fromJson(json,userType);
如果应将 JSON 字符串解析为 Outer<List<Person>>
对象:
Type userListType = new TypeToken<Outer<List<Person>>>(){}.getType();
Result<List<User>> userListResult = gson.fromJson(json,userListType);