In this example we will learn how to parse JSON in android.
For better understanding taking a simple and static JSON to parse.

{
"Android" :
[
{
"song_name":"Gimme Dat",
"song_id":"1932",
"artist_name":"Sidney Samson (Feat. Pitbull & Akon)"
},
{
"song_name":"F-k The Money (Remix)",
"song_id":"73",
"artist_name":"B.o.B. (Feat. Wiz Khalifa)"
}
]
}
public class ParseJsonAndroidExample extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_parse_json_android_example);
final TextView output = (TextView) findViewById(R.id.output);
final Button bparsejson = (Button) findViewById(R.id.bparsejson);
/************ Static JSON data ***********/
final String strJson = "{ "Android" :[{"song_name":"Gimme Dat",
"song_id":"1932",
"artist_name":"Sidney Samson (Feat. Pitbull & Akon)"
},
{ "song_name":"F-k The Money (Remix)",
"song_id":"73",
"artist_name":"B.o.B. (Feat. Wiz Khalifa)"}] }";
String dataToBeParsed = "Click on button to parse JSON.\n\n JSON DATA : \n\n"+strJson;
output.setText(dataToBeParsed);
/******** Listener for button click ********/
bparsejson.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String OutputData = "";
JSONObject jsonResponse;
try {
/****** Creates a new JSONObject with name/value mappings from the JSON string. ********/
jsonResponse = new JSONObject(strJson);
/***** Returns the value mapped by name if it exists and is a JSONArray. ***/
/******* Returns null otherwise. *******/
JSONArray jsonMainNode = jsonResponse.optJSONArray("Android");
/*********** Process each JSON Node ************/
int lengthJsonArr = jsonMainNode.length();
for(int i=0; i < lengthJsonArr; i++)
{
/****** Get Object for each JSON node.***********/
JSONObject jsonChildNode = jsonMainNode.getJSONObject(i);
/******* Fetch node values **********/
int song_id = Integer.parseInt(jsonChildNode.optString("song_id").toString());
String song_name = jsonChildNode.optString("song_name").toString();
String artist_name = jsonChildNode.optString("artist_name").toString();
OutputData += "Node : \n\n "+ song_id +" | "
+ song_name +" | "
+ artist_name +" \n\n ";
//Log.i("JSON parse", song_name);
}
/************ Show Output on screen/activity **********/
output.setText( OutputData );
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ParseXmlAndroidExample" >
<Button
android:id="@+id/bparsejson"
android:text="Parse JSON Data Android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
<TextView
android:id="@+id/output"
android:paddingTop="10px"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="" />
</LinearLayout>