Above codes right or wrong??
So look at source:
{
"results":{
"constituencies":[
],
"members":[
{
"constituency_name":"Beckenham",
"member_name":"Bob Stewart",
"member_party":"Conservative",
"member_biography_url":"http://www.parliament.uk/biographies/commons/Bob-Stewart/3919",
"member_website":"http://www.bobstewartmp.com/",
"uri":"http://findyourmp.parliament.uk/constituencies/beckenham.json"
},
{
"constituency_name":"Colchester",
"member_name":"Sir Bob Russell",
"member_party":"Liberal Democrat",
"member_biography_url":"http://www.parliament.uk/biographies/commons/Sir-Bob-Russell/35",
"member_website":"http://www.bobrussell.org.uk",
"uri":"http://findyourmp.parliament.uk/constituencies/colchester.json"
},
]
}
}
Here you have two JSONObject
:
- First(whole source)
- results
results contains(in this snippet of code) two JSONArrays
:
- constituencies(that is empty array)
- members(it has two childs)
So you need to first fetch whole JSON
then results and then you have access to arrays.
JSONObject root = new JSONObject(str); // whole source
JSONObject results = root.getJSONObject("results");
JSONArray constituenciesArr = results.getJSONArray("constituencies");
JSONArray membersArr = results.getJSONArray("members");
JSONObject child = null;
for (int i = 0; i < membersArr.length(); i++) {
child = membersArr.getJSONObject(i);
String mName = child.getString("member_name");
...
}