使用 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);