Parse JSON Data In Android

Introduction

 
JSON stands for JavaScript Object Notation. JSON is a light weight data interchange format in a text format so it can be easily parsed and read by machines and humans.
 
Parsing JSON data is important in Android. Create a new project on Android by using the following steps,
 
Step 1
 
 
 
Step 2
 
 
Step 3
 
 
Step 4
 
 
Step 5
 
 
JSON uses the following two types of different structures,
  1. Collection of name/value pair
  2. Array
Example of collection of name/value pair: The { (curly brace) represents the JSON object.
  1. {"Employee" :{    
  2.     
  3.    "id":"1",    
  4.    "name":"David",    
  5.     
  6.    "address":"Delhi",    
  7.     
  8.    "zip":"110002"}    
  9.     
  10. }   
    Example of collection of array: The [ (square bracket ) represents the JSON array.
    1. {    
    2.     "Employee": [    
    3.     {    
    4.         "id""1",    
    5.         "name""David",    
    6.         "address""Delhi",    
    7.         "zip""110002"    
    8.     },    
    9.     {    
    10.         "id""2",    
    11.         "name""John",    
    12.         "address""Mumbai",    
    13.         "zip""400001"    
    14.     },    
    15.     {    
    16.         "id""3",    
    17.         "name""Mathew",    
    18.         "address""Delhi",    
    19.         "zip""110003"    
    20.     },    
    21.     {    
    22.         "id""4",    
    23.         "name""Mary",    
    24.         "address""Delhi",    
    25.         "zip""110010"    
    26.     }]    
    27. }   
      Complete Java class to parse JSON data.
      1. {    
      2.     "Employee": [    
      3.     {    
      4.         "id""1",    
      5.         "name""David",    
      6.         "address""Delhi",    
      7.         "zip""110002"    
      8.     },    
      9.     {    
      10.         "id""2",    
      11.         "name""John",    
      12.         "address""Mumbai",    
      13.         "zip""400001"    
      14.     },    
      15.     {    
      16.         "id""3",    
      17.         "name""Mathew",    
      18.         "address""Delhi",    
      19.         "zip""110003"    
      20.     },    
      21.     {    
      22.         "id""4",    
      23.         "name""Mary",    
      24.         "address""Delhi",    
      25.         "zip""110010"    
      26.     }]    
      27. }    
      28. package com.test.ppandey.jsonparse;    
      29. import android.support.v7.app.ActionBarActivity;    
      30. import android.os.Bundle;    
      31. import android.view.Menu;    
      32. import android.view.MenuItem;    
      33. import android.widget.TextView;    
      34. import org.json.JSONArray;    
      35. import org.json.JSONException;    
      36. import org.json.JSONObject;    
      37. public class MainActivity extends ActionBarActivity    
      38. {    
      39.     @Override    
      40.     protected void onCreate(Bundle savedInstanceState)    
      41.     {    
      42.         super.onCreate(savedInstanceState);    
      43.         setContentView(R.layout.activity_main);    
      44.         TextView output = (TextView) findViewById(R.id.textView1);    
      45.         String strJson = "{\"Employee\" :[ {" + " \"id\":\"1\",\n" + "\"name\":\"David\",\n" + "\"address\":\"Delhi\", \n" + "\"zip\":\"110002\"}, {\n" + "\"id\":\"2\",\n" + "\"name\":\"John\",\n" + "\"address\":\"Mumbai\",\n" + "\"zip\":\"400001\"}, {\n" + "\"id\":\"3\",\n" + "\"name\":\"Mathew\",\n" + "\"address\":\"Delhi\",\n" + "\"zip\":\"110003\"}, {\n" + "\"id\":\"4\",\n" + "\"name\":\"Mary\",\n" + "\"address\":\"Delhi\",\n" + "\"zip\":\"110010\"} \n" + "]}";    
      46.         String data = "";    
      47.         try    
      48.         {    
      49.             JSONObject jsonRootObject = new JSONObject(strJson);    
      50.             //Instance of JSONArray that contains JSONObjects    
      51.             JSONArray jsonArray = jsonRootObject.optJSONArray("Employee");    
      52.             //Iterate the jsonArray and print the information of the JSONObjects    
      53.             for (int i = 0; i < jsonArray.length(); i++)    
      54.             {    
      55.                 JSONObject jsonObject = jsonArray.getJSONObject(i);    
      56.                 int id = Integer.parseInt(jsonObject.optString("id").toString());    
      57.                 String name = jsonObject.optString("name").toString();    
      58.                 String address = jsonObject.optString("address").toString();    
      59.                 String zip = jsonObject.optString("zip").toString();    
      60.                 data += "Employee " + i + " : \n id= " + id + " \n Name= " + name + " \n Address= " + address + " \n zip=" + zip + "\n ";    
      61.             }    
      62.             output.setText(data);    
      63.         }    
      64.         catch (JSONException e)    
      65.         {    
      66.             e.printStackTrace();    
      67.         }    
      68.     }    
      69.     @Override    
      70.     public boolean onCreateOptionsMenu(Menu menu)    
      71.     {    
      72.         // Inflate the menu; this adds items to the action bar if it is present.    
      73.         getMenuInflater().inflate(R.menu.menu_main, menu);    
      74.         return true;    
      75.     }    
      76.     @Override    
      77.     public boolean onOptionsItemSelected(MenuItem item)    
      78.     {    
      79.         // Handle action bar item clicks here. The action bar will    
      80.         // automatically handle clicks on the Home/Up button, so long    
      81.         // as you specify a parent activity in AndroidManifest.xml.    
      82.         int id = item.getItemId();    
      83.         //noinspection SimplifiableIfStatement    
      84.         if (id == R.id.action_settings)    
      85.         {    
      86.             return true;    
      87.         }    
      88.         return super.onOptionsItemSelected(item);    
      89.     }    
      90. }   
        In the above code, we created string containing JSON data and object of class JSONObject.
        1. JSONObject jsonRootObject = new JSONObject(strJson);    
        And pass string containing JSON data to it.
         
        The second step is to parse the JSON.
        1. JSONArray jsonArray = jsonRootObject.optJSONArray("Employee");    
        2. int id = Integer.parseInt(jsonObject.optString("id").toString());    
        3. String name = jsonObject.optString("name").toString();    
        4. String address = jsonObject.optString("address").toString();    
        5. String zip = jsonObject.optString("zip").toString();   
          Run the application and we get the JSON data as in the following.
           


          Similar Articles