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. "id":"1",
  3. "name":"David",
  4. "address":"Delhi",
  5. "zip":"110002"}
  6. }
    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.