некоторое время искала на сайте, а я никуда не денусь.
Я создаю приложение для Android, которое получает список значений из базы данных mySQL через PHP и возвращает результат, закодированный в объект JSON:
{"error":false,"values":{"1":{"name":"This is a string"}, "2":{...}}}
Я получаю объект JSON в Java следующим образом:
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
if (!error) {
JSONObject values = jObj.getJSONObject("values");
Iterator<?> keys = values.keys();
while(keys.hasNext()) {
String key = (String)keys.next();
JSONObject value = jObj.getJSONObject(key);
...
}
Это в точке перед эллипсами, где я получаю исключение:
org.json.JSONException: No value for "1"
Я делаю что-то совершенно глупое, или что-то, все выглядит хорошо для меня. Я пробовал несколько разных вещей, но продолжаю получать одну и ту же проблему.
В конечном итоге я хотел бы получить имя obj и добавить его в список строк. Но я не могу выйти за рамки этой точки.
Любая помощь или толчок в правильном направлении будут благодарны.
JSONObject value = jObj.getJSONObject(key);
Заменить
JSONObject value = values.getJSONObject(key);
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
if (!error) {
JSONObject values = jObj.getJSONObject("values");
Iterator<?> keys = values.keys();
while(keys.hasNext()) {
String key = (String)keys.next();
JSONObject value = values.getJSONObject(key);
...
}