Parsing json array to generic class using Gson
suggest changeSuppose we have a json :
{ "total_count": 132, "page_size": 2, "page_index": 1, "twitter_posts": [ { "created_on": 1465935152, "tweet_id": 210462857140252672, "tweet": "Along with our new #Twitterbird, we've also updated our Display Guidelines", "url": "https://twitter.com/twitterapi/status/210462857140252672" }, { "created_on": 1465995741, "tweet_id": 735128881808691200, "tweet": "Information on the upcoming changes to Tweets is now on the developer site", "url": "https://twitter.com/twitterapi/status/735128881808691200" } ] }
We can parse this array into a Custom Tweets (tweets list container) object manually, but it is easier to do it with fromJson
method:
Gson gson = new Gson(); String jsonArray = "...."; Tweets tweets = gson.fromJson(jsonArray, Tweets.class);
Suppose we have two classes below:
class Tweets { @SerializedName("total_count") int totalCount; @SerializedName("page_size") int pageSize; @SerializedName("page_index") int pageIndex; // all you need to do it is just define List variable with correct name @SerializedName("twitter_posts") List<Tweet> tweets; } class Tweet { @SerializedName("created_on") long createdOn; @SerializedName("tweet_id") String tweetId; @SerializedName("tweet") String tweetBody; @SerializedName("url") String url; }
and if you need just parse a json array you can use this code in your parsing:
String tweetsJsonArray = "[{.....},{.....}]" List<Tweet> tweets = gson.fromJson(tweetsJsonArray, new TypeToken<List<Tweet>>() {}.getType());
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents