Подтвердить что ты не робот

Как десериализовать массив объектов JSON с помощью библиотеки Gson?

Я сталкиваюсь с проблемой, когда пытаюсь десериализовать массив объектов JSON с помощью библиотеки Gson.

Пример массива JSON:

[
    {"ID":1,"Title":"Lion","Description":"bla bla","ImageURL":"http:\/\/localhost\/lion.jpg"},
    {"ID":1,"Title":"Tiger","Description":"bla bla","ImageURL":"http:\/\/localhost\/tiger.jpg"}
]

Что ты думаешь? Каков правильный код Java для десериализации такого ответа JSON?

4b9b3361

Ответ 1

Для десериализации JSONArray вам нужно использовать TypeToken. Подробнее об этом можно узнать из руководство пользователя GSON. Пример кода:

@Test
public void JSON() {
    Gson gson = new Gson();
    Type listType = new TypeToken<List<MyObject>>(){}.getType();
    // In this test code i just shove the JSON here as string.
    List<Asd> asd = gson.fromJson("[{'name':\"test1\"}, {'name':\"test2\"}]", listType);
}

Если у вас есть JSONArray, вы можете использовать

...
JSONArray jsonArray = ...
gson.fromJson(jsonArray.toString(), listType);
...