json

JSON parsing with Gson

Photo of Ilias TsagklisIlias TsagklisNovember 11th, 2012Last Updated: January 11th, 2019
0 215 2 minutes read

This is an example of JSON parsing on Android with Gson.Google Gson is a Java library that can be used to convert Java Objects into their JSON representation.

In order to parse JSON with Gson, follow these steps:

  • Create a class that extendsActivity (here called JsonParsingActivity)
  • Create an instance of theGson class
  • Use theDefaultHttpClient to retrieve the data if this is a web resource
  • Create a class that will represent the model of the input (here called SearchResponse)
  • Use thefromJson method in order to parse the JSON input and return the model object

These are demonstrated in the code snippet(s) below:

package com.javacodegeeks.android.json;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.Reader;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.widget.Toast;import com.google.gson.Gson;import com.javacodegeeks.android.json.model.Result;import com.javacodegeeks.android.json.model.SearchResponse;public class JsonParsingActivity extends Activity {    String url = "http://search.twitter.com/search.json?q=javacodegeeks";    @Override    public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  InputStream source = retrieveStream(url);  Gson gson = new Gson();  Reader reader = new InputStreamReader(source);  SearchResponse response = gson.fromJson(reader, SearchResponse.class);  Toast.makeText(this, response.query, Toast.LENGTH_SHORT).show();  List<Result> results = response.results;  for (Result result : results) {Toast.makeText(this, result.fromUser, Toast.LENGTH_SHORT).show();  }    }    private InputStream retrieveStream(String url) {  DefaultHttpClient client = new DefaultHttpClient();   HttpGet getRequest = new HttpGet(url);  try {     HttpResponse getResponse = client.execute(getRequest);     final int statusCode = getResponse.getStatusLine().getStatusCode();     if (statusCode != HttpStatus.SC_OK) {   Log.w(getClass().getSimpleName(), "Error " + statusCode + " for URL " + url);   return null;     }     HttpEntity getResponseEntity = getResponse.getEntity();     return getResponseEntity.getContent();  }   catch (IOException e) {     getRequest.abort();     Log.w(getClass().getSimpleName(), "Error for URL " + url, e);  }  return null;     }}
package com.javacodegeeks.android.json.model;import java.util.List;import com.google.gson.annotations.SerializedName;public class SearchResponse {    public List results;    @SerializedName("max_id")    public long maxId;    @SerializedName("since_id")    public int sinceId;    @SerializedName("refresh_url")    public String refreshUrl;    @SerializedName("next_page")    public String nextPage;    @SerializedName("results_per_page")    public int resultsPerPage;    public int page;    @SerializedName("completed_in")    public double completedIn;    @SerializedName("since_id_str")    public String sinceIdStr;    @SerializedName("max_id_str")    public String maxIdStr;    public String query;}
package com.javacodegeeks.android.json.model;import com.google.gson.annotations.SerializedName;public class Result {    @SerializedName("from_user_id_str")    public String fromUserIdStr;    @SerializedName("profile_image_url")    public String profileImageUrl;    @SerializedName("created_at")    public String createdAt;    @SerializedName("from_user")    public String fromUser;    @SerializedName("id_str")    public String idStr;    public Metadata metadata;    @SerializedName("to_user_id")    public String toUserId;    public String text;    public long id;    @SerializedName("from_user_id")    public String from_user_id;    @SerializedName("iso_language_code")    public String isoLanguageCode;    @SerializedName("to_user_id_str")    public String toUserIdStr;    public String source;}
package com.javacodegeeks.android.json.model;import com.google.gson.annotations.SerializedName;public class Metadata {    @SerializedName("result_type")    public String resultType;}

 
This was an example of how to parse JSON with Gson on Android.

Related Article:

Do you want to know how to develop your skillset to become aJava Rockstar?
Subscribe to our newsletter to start Rockingright now!
To get you started we give you our best selling eBooks forFREE!
1. JPA Mini Book
2. JVM Troubleshooting Guide
3. JUnit Tutorial for Unit Testing
4. Java Annotations Tutorial
5. Java Interview Questions
6. Spring Interview Questions
7. Android UI Design
and many more ....
I agree to theTerms andPrivacy Policy

Thank you!

We will contact you soon.

Photo of Ilias TsagklisIlias TsagklisNovember 11th, 2012Last Updated: January 11th, 2019
0 215 2 minutes read
Photo of Ilias Tsagklis

Ilias Tsagklis

Ilias is a software developer turned online entrepreneur. He is co-founder and Executive Editor atJava Code Geeks.

Related Articles

Subscribe
Notify of
guest
I agree to theTerms andPrivacy Policy
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.

I agree to theTerms andPrivacy Policy
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.