Suppose we have a JSON stringļ¼
["first","second","third"]
We can parse this JSON string into a String
array :
Gson gson = new Gson();
String jsonArray = "[\"first\",\"second\",\"third\"]";
String[] strings = gson.fromJson(jsonArray, String[].class);
But if we want parse it into a List<String>
object, we must use TypeToken
.
Here is the sample :
Gson gson = new Gson();
String jsonArray = "[\"first\",\"second\",\"third\"]";
List<String> stringList = gson.fromJson(jsonArray, new TypeToken<List<String>>() {}.getType());
Suppose we have two classes below:
public class Outer<T> {
public int index;
public T data;
}
public class Person {
public String firstName;
public String lastName;
}
and we have a JSON string that should be parsed to a Outer<Person>
object.
This example shows how to parse this JSON string to the related generic class object:
String json = "......";
Type userType = new TypeToken<Outer<Person>>(){}.getType();
Result<User> userResult = gson.fromJson(json,userType);
If the JSON string should be parsed to a Outer<List<Person>>
object :
Type userListType = new TypeToken<Outer<List<Person>>>(){}.getType();
Result<List<User>> userListResult = gson.fromJson(json,userListType);