In this blog explain the steps to parse JSON object in android. We are discuss the following items
Overview of JSON
Syntax of JSON
Android JSON Support
Steps to Parse JSON data
Sample Application
Overview of JSON [JavaScript Object Notation]
Lightweight data-interchagable format
Text format that is completely language independent
JSON is built on two structures:
* A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array.
* An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.
Syntax of JSON
Object {name1 : Value1 , name2 : Value2 , name3 : Value3 } -Normal Object Collection
Object [{name1_1 : Value , name1_2 : Value1 , name1_3 : Value2 }
{name2_1 : Value , name2_2 : Value1 , name2_3 : Value2 } ] - Array Based
Example :
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
Android JSON Support
Android already contains the required JSON libraries. The Following class are used to parse the JSON Object.
JSONArray A JSONArray is an ordered sequence of values.
JSONObject A JSONObject is an unordered collection of name/value pairs.
JSONStringer JSONStringer provides a quick and convenient way of producing JSON text.
JSONTokener A JSONTokener takes a source string and extracts characters and tokens from it.
Steps to Parse JSON data
1. Create a JSON Object and Convert JSONString to JSON Object
JSONObject jObject = new JSONObject(jsonString);
2. Create a Key based JSONObject.
JSONObject menuObject = jObject.getJSONObject("menu");
3. Get the Value
Log.d("ID", menuObject.getString("id"));
Log.d("Value ", menuObject.getString("value"));
Sample Application
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String myJsonContent = "{\"menu\": {\"id\": \"file\",\"value\": \"File\",\"popup\": {\"menuitem\": [{\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"},{\"value\": \"Open\",\"onclick\": \"OpenDoc()\"},{\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}]}}}";
sampleJsonParser(myJsonContent);
}
public void sampleJsonParser(String jsonString) {
try {
JSONObject jObject = new JSONObject(jsonString);
JSONObject menuObject = jObject.getJSONObject("menu");
Log.d("ID", menuObject.getString("id"));
Log.d("Value ", menuObject.getString("value"));
JSONObject popupObject = menuObject.getJSONObject("popup");
JSONArray menuitemArray = popupObject.getJSONArray("menuitem");
for (int i = 0; i < 3; i++) {
Log.d("Name", menuitemArray.getJSONObject(i).getString("value")
.toString());
Log.d("Value", menuitemArray.getJSONObject(i).getString(
"onclick").toString());
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
Overview of JSON
Syntax of JSON
Android JSON Support
Steps to Parse JSON data
Sample Application
Overview of JSON [JavaScript Object Notation]
Lightweight data-interchagable format
Text format that is completely language independent
JSON is built on two structures:
* A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array.
* An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.
Syntax of JSON
Object {name1 : Value1 , name2 : Value2 , name3 : Value3 } -Normal Object Collection
Object [{name1_1 : Value , name1_2 : Value1 , name1_3 : Value2 }
{name2_1 : Value , name2_2 : Value1 , name2_3 : Value2 } ] - Array Based
Example :
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
Android JSON Support
Android already contains the required JSON libraries. The Following class are used to parse the JSON Object.
JSONArray A JSONArray is an ordered sequence of values.
JSONObject A JSONObject is an unordered collection of name/value pairs.
JSONStringer JSONStringer provides a quick and convenient way of producing JSON text.
JSONTokener A JSONTokener takes a source string and extracts characters and tokens from it.
Steps to Parse JSON data
1. Create a JSON Object and Convert JSONString to JSON Object
JSONObject jObject = new JSONObject(jsonString);
2. Create a Key based JSONObject.
JSONObject menuObject = jObject.getJSONObject("menu");
3. Get the Value
Log.d("ID", menuObject.getString("id"));
Log.d("Value ", menuObject.getString("value"));
Sample Application
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String myJsonContent = "{\"menu\": {\"id\": \"file\",\"value\": \"File\",\"popup\": {\"menuitem\": [{\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"},{\"value\": \"Open\",\"onclick\": \"OpenDoc()\"},{\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}]}}}";
sampleJsonParser(myJsonContent);
}
public void sampleJsonParser(String jsonString) {
try {
JSONObject jObject = new JSONObject(jsonString);
JSONObject menuObject = jObject.getJSONObject("menu");
Log.d("ID", menuObject.getString("id"));
Log.d("Value ", menuObject.getString("value"));
JSONObject popupObject = menuObject.getJSONObject("popup");
JSONArray menuitemArray = popupObject.getJSONArray("menuitem");
for (int i = 0; i < 3; i++) {
Log.d("Name", menuitemArray.getJSONObject(i).getString("value")
.toString());
Log.d("Value", menuitemArray.getJSONObject(i).getString(
"onclick").toString());
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}