In this example we will see how to
parse a JavaScript Object Notation(JSON) response. Here we will use a
set of classes from the org.json package offered in Android
SDK by simply creating new JSONObject from the formatted string data.
Let us parse the following JSON
response:
JSON response:
{
“person”:{
“name”:“Jack”,
“age”:27
}
}
1.Create
a new project File
->New -> Project ->Android ->Android Application Project.
Follow the wizard to create a project.
After the project is created in the layout file activity_main.xml
(in my case) create two text views and give the id as name and age.
Refer the below code.
activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="110dp"
android:text="@string/hello_world"
tools:context=".MainActivity" />
<TextView
android:id="@+id/age"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/name"
android:layout_centerVertical="true"
android:text="@string/hello_world"
tools:context=".MainActivity" />
</RelativeLayout>
2.Now in the corresponding java file MainActivity.java (in my case) we will put the JSON response in a string and parse it. Since JSON parser is strict by default , meaning the execution will halt with an exception if an invalid JSON data is found or no data is found.
MainActivity.java:
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
public static final String JSON_STRING = "{\"person\":{\"name\":\"Jack Sparrow\",\"age\":27}}";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView name = (TextView) findViewById(R.id.name);
TextView age = (TextView) findViewById(R.id.age);
try {
JSONObject person = (new JSONObject(JSON_STRING))
.getJSONObject("person");
String Name = person.getString("name");
int Age = person.getInt("age");
name.setText("Whats the name?\n" + Name);
age.setText("Whats the age?\n" + Age);
} catch (JSONException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.Run
the project by rightclicking project Run
as → android project.
Output:
The
output of this example would be similar to the one as follows:
