Parse JSON Data
Description
The following code shows how to Parse JSON Data.
Example
\res\layout\main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/line1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/line2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/line3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
Main Activity Java code
package com.java2s.myapplication3.app;
/*w ww .j a v a 2s . c o m*/
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import org.json.JSONObject;
import org.json.JSONException;
public class MainActivity extends Activity {
private static final String JSON_STRING =
"{'person':{'name':'XML','age':3,'children':["
+ "{'name':'CSS','age':5},"
+ "{'name':'HTML','age':7},"
+ "{'name':'Javascript','age':9}"
+ "] } }";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView line1 = (TextView)findViewById(R.id.line1);
TextView line2 = (TextView)findViewById(R.id.line2);
TextView line3 = (TextView)findViewById(R.id.line3);
try {
JSONObject person = (new JSONObject(JSON_STRING)).getJSONObject("person");
String name = person.getString("name");
line1.setText("This person's name is " + name);
line2.setText(name + " is " + person.getInt("age") + " years old.");
line3.setText(name + " has " + person.getJSONArray("children").length()
+ " children.");
} catch (JSONException e) {
e.printStackTrace();
}
}
}