Выше правильных или неправильных кодов?
Так что смотрите на источник:
{
"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"
},
]
}
}
Здесь у вас есть два JSONObject
:
- Во-первых (весь источник)
- результаты
результатов содержит (в этом фрагмент кода) два JSONArrays
:
- избирательных округов (то есть пустой массив)
- членов (он имеет два Чайлдс)
Таким образом, вы должны сначала извлечь целые JSON
затем результаты, а затем у вас есть доступ к массивам.
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");
...
}
Я продолжал писать код после ваших предложений .. Он показывает 'Значение локальных переменных-окруженияArr не используется' и' Значение локальной переменной membersArr не используется'. проверьте этот http://pastebin.com/cMzZHzBW и класс парламента http://pastebin.com/j2BVjDFk – User1001
@ User1001 это не проблема ... только предупреждение о том, что вы не используете переменную окруженияArr. Вы можете точно удалить эту строку. Это было только для воображения. – Sajmon
okayy! Я сообщу тебе, как только закончу. – User1001