У меня есть несколько каналов JSON в моем приложении, которые правильно анализируют, используя правильную грамматику и использование ключей. Я использую методику, аналогичную следующей:Итерация/анализ этого ответа JSON
try {
JSONObject jsonObj = new JSONObject(response);
if(jsonObj.length() > 0){
Iterator keys = jsonObj.keys();
while (keys.hasNext()) {
String key = (String) keys.next();
JSONObject obj = (JSONObject) jsonObj.get(key);
String myString = obj.get("fieldname").toString();
...
}
}
} catch(e) {
...
}
Однако один канал JSON У меня есть стилизовано, как, после чего необходимо разобрать несколько иначе:
{
"10":["111","aaa","bbb","213sdg","1.0","-0.343"],
"20":["111","aaa","bbb","213sdg","1.0","-0.343"],
"30":["111","aaa","bbb","213sdg","1.0","-0.343"],
"40":["111","aaa","bbb","213sdg","1.0","-0.343"],
"50":["111","aaa","bbb","213sdg","1.0","-0.343"]
}
Я попытался с помощью JSONArray
вместо из JSONObject
, но все же предложение try {} обнаруживает ошибку для запроса имени поля/ключа, когда в фиде нет имен полей/ключей.
Есть ли простой способ итерации этого фида стиля, без необходимости менять выход фида? Большое спасибо
EDIT: Изменено JSON ключи объекта, чтобы показать, что я на самом деле, используя различные номера
У вас есть только один JsonObject в вашем json. Почему в вашем цикле while используется второй jsonObject? –
Этот код не распространяется на отправленный JSON. Второй объект должен был получить JSONObject «строки», чтобы затем разобрать и получить значение поля этой строки. – Jammo
В вашей строке нет jsonobject. ваш массив просто содержит строки –