Tutorial details

JSON with Android | App Code for Sale | Preview

JSON with Android | Android Tutorial

How to process JSON within Android. It is based on Eclipse 3.6, Java 1.6 and Android 2.3.3

Overview PAGE TOP

This article describes how to process JSON within Android. It is based on Eclipse 3.6, Java 1.6 and Android 2.3.3 (Gingerbread).


http://www.vogella.de under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Germany (CC BY-NC-SA 3.0) licence.

Android and JSON PAGE TOP

JSON is a very condense data exchange format. Android includes the json.org libraries which allow to work easily with JSON files.

JSON Example: Twitter PAGE TOP

Twitter is a great source for JSON. You can just call a URI and retrieve JSON. Here are some examples:

Table 1. Twitter URIs URI: http://twitter.com/statuses/user_timeline/vogella.json. Description: Get the timeline of user vogella

URI: http://search.twitter.com/search.json?q=android Description: Search for the term "android" on Twitter.

URI: http://twitter.com/users/show/vogella.json Description: Returns the user data of user vogella.

Please note that some URIs return a JSONObject object while others return a JSONArray.


Create a new Android project "de.vogella.android.twitter.json" with the package "de.vogella.android.twitter.json" and the activity "ParseJSON".

Create the following coding for the activity. This will download the twitter feed for the user http://twitter.com/vogella and write the number of entries and the text messages to the Android log file.

package de.vogella.android.twitter.json;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONObject;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class ParseJSON extends Activity {

/** Called when the activity is first created. */

  public void onCreate(Bundle savedInstanceState) {
    String readTwitterFeed = readTwitterFeed();
    try {
      JSONArray jsonArray = new JSONArray(readTwitterFeed);
          "Number of entries " + jsonArray.length());
      for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject jsonObject = jsonArray.getJSONObject(i);
        Log.i(ParseJSON.class.getName(), jsonObject.getString("text"));
    } catch (Exception e) {

  public String readTwitterFeed() {
    StringBuilder builder = new StringBuilder();
    HttpClient client = new DefaultHttpClient();
    HttpGet httpGet = new HttpGet("http://twitter.com/statuses/user_timeline/vogella.json");
    try {
      HttpResponse response = client.execute(httpGet);
      StatusLine statusLine = response.getStatusLine();
      int statusCode = statusLine.getStatusCode();
      if (statusCode == 200) {
        HttpEntity entity = response.getEntity();
        InputStream content = entity.getContent();
        BufferedReader reader = new BufferedReader(new InputStreamReader(content));
        String line;
        while ((line = reader.readLine()) != null) {
      } else {
        Log.e(ParseJSON.class.toString(), "Failed to download file");
    } catch (ClientProtocolException e) {
    } catch (IOException e) {
    return builder.toString();

To run this example assign the uses-permission to your AndroidManifest.xml for "android.permission.INTERNET".


Writing JSON is very simple. Just create the JSONObject or JSONArray and use the toString() method.

public void writeJSON() {
  JSONObject object = new JSONObject();
  try {
    object.put("name", "Jack Hack");
    object.put("score", new Integer(200));
    object.put("current", new Double(152.32));
    object.put("nickname", "Hacker");
  } catch (JSONException e) {
0 Comments Leave a comment

Please login in order to leave a comment.

Newest first

to your Chupamobile Account.

The Easiest way to Launch your next App or Game.

Join Chupamobile and get instant access to thousands of ready made App and Game Templates.

Creating an account means you’re okay with Chupamobile’s Terms of Service and Privacy Policy.