Страницы

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

понедельник, 9 декабря 2019 г.

JSON парсинг android

#java #android #json #парсер


Имеется такой JSON: 

[
    {
        "id":1080505,
        "name":"Tove Lo",
        "genres":[
            "pop",
            "dance",
            "electronics"
        ],
        "tracks":81,
        "albums":22,
        "link":somelink,
        "description":description,
        "cover":{
            "small":somestring,
            "big":somestring1
        }
    },
    {
    ...
    }
]



Каким образом мне его спарсить? 
Как я могу получить JSONArray, если нет имени JSONArray? Т.е. после "[" сразу идут
элементы JSON. 
Каким образом его можно обработать? В последствии данные с JSON нужно забить в ListView.

    


Ответы

Ответ 1



try { JSONArray rootJSON = new JSONArray(new JSONTokener(YourJson)); for (int i = 0; i < rootJSON.length(); i++) { JSONObject o = rootJSON.getJSONObject(i); Log.d("TAG", o.getString("name")); } } catch (JSONException e) { e.printStackTrace(); }

Ответ 2



Вариант с использованием библиотеки GSON Создаем объекты-модели: public class Cover { @SerializedName("small") public String small; @SerializedName("big") public String big; } public class Example { @SerializedName("id") public int id; @SerializedName("name") public String name; @SerializedName("genres") public List genres = new ArrayList(); @SerializedName("tracks") public int tracks; @SerializedName("albums") public int albums; @SerializedName("link") public String link; @SerializedName("description") public String description; @SerializedName("cover") public Cover cover; } Используя Gson парсим входной объект: Type listType = new TypeToken>() {}.getType(); List yourClassList = new Gson().fromJson(jsonArray, listType);

Ответ 3



То, что в фигурных скобках это JsonObject, то, что в квадратных JsonArray. В вашем примере, JsonArray это сам корень json и поле genres. Посмотрите примеры из документации, там все очень наглядно и понятно.

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

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