Страницы

Поиск по вопросам

пятница, 13 марта 2020 г.

Как получить данные из 2 элемента Json?

#android #json


{
    "status":"success",
    "data":{
       "215":{},
       "248":{},
       "252":{}
    }
}


Как получить 2 элемент?

json.getJsonObject("data"). А дальше что? Тут проблема в том, что я по сути не знаю
названия объектов. Таких как 215, 248, 252. На то он и запрос, как быть?
    


Ответы

Ответ 1



Что есть второй элемент не совсем понятно, у объектов порядок свойств может быть произвольным. А получить все ключи можно так: JsonObject data = json.getJsonObject("data"); Set> entries = data.entrySet(); for (Map.Entry entry: entries) { System.out.println(entry.getKey());//"215","248","252" } ...и, например, взять второй элемент. А вообще, логичным выглядел бы json вида: { "status":"success", "data":[ {"id":"215","object":{}}, {"id":"248", "object":{}}, {"id":"252", "object":{}} ] } или id внутри object: { "status":"success", "data":[ {"id":"215",...}, {"id":"248",...}, {"id":"252",...} ] }

Ответ 2



Опишите класс получаемого объекта и дессериализуйте его: gson.fromJson(jsonString, Type.class);

Ответ 3



В вашем случае доступ можно получить только по ключу, т.к. тип у data - JsonObject, а не JsonArray.

Комментариев нет:

Отправить комментарий