I'm available for remote short term contracting or consultancy work. Please check out my LinkedIn profile for more details on my experience.
Please feel free to use the form below to contact me.
I'm available for remote short term contracting or consultancy work. Please check out my LinkedIn profile for more details on my experience.
Please feel free to use the form below to contact me.
The process of parsing JSON in Android is pretty simple, thankfully. We'll be using JSONObject for all the parsing goodness - there are also some other JSON classes, but we'll just go through the basic ones to give you a general idea of how it works.
The first thing we will do is setup our JSON string, which we'll end up parsing.
String jsonStr = '{"menu": {' +
'"id": "file",' +
'"value": "File",' +
'"popup": {' +
'"menuitem": [' +
'{"value": "New", "onclick": "CreateNewDoc()"},' +
'{"value": "Open", "onclick": "OpenDoc()"},' +
'{"value": "Close", "onclick": "CloseDoc()"}' +
']' +
'}' +
'}}';
That JSON string is actually from http://json.org/example.html. It was the best one I could find for this given example.
Now that we have that in place, lets start using JSONObject. You will need the following import for this to work: import org.json.JSONObject;
JSONObject jsonObj = new JSONObject(jsonStr);
With that instantiated, we can do the following to retreive different pieces of data from the JSON string - you will also need the following import for JSONArray: import org.json.JSONArray; and import android.util.Log; for Log.
// grabbing the menu object
JSONObject menu = jsonObj.getJSONObject("menu");
// these 2 are strings
String id = menu.getString("id");
String value = menu.getString("value");
// the popop is another JSON object
JSONObject popup = menu.getJSONObject("popup");
// using JSONArray to grab the menuitems from under popop
JSONArray menuitemArr = popupObject.getJSONArray("menuitem");
// lets loop through the JSONArray and get all the items
for (int i = 0; i < menuitemArr.length(); i++) {
// printing the values to the logcat
Log.v(menuitemArr.getJSONObject(i).getString("value").toString());
Log.v(menuitemArr.getJSONObject(i).getString("onclick").toString());
}
int menuitemArrLen = menuitemArr.length();
for(int i = 0; i < menuitemArrLen; i++){
// Log.v() commands
}