Я пытаюсь десериализовать следующую часть JSON с GSON.
"images": [ { "link": "http://media.neckermann.de/image/101/900/7/27/927/101_219927.jpg" }, { "link": "http://media.neckermann.de/image/101/480/7/27/927/101_219927.jpg" }, { "link": "http://media.neckermann.de/image/101/210/7/27/927/101_219927.jpg" } ]
Если GSON получает эту строку JSON, GSON падает. Если в «изображениях» есть только один элемент, он отлично работает. Как я могу решить эту проблему? Иногда я получаю только одну «ссылку» в JSON, а иногда есть три записи в JSON, как указано выше. Как я могу обработать этот JSON с GSON?
Заранее большое спасибо!
Martin
Вывод следующего примера:
[link=http://media.neckermann.de/image/101/900/7/27/927/101_219927.jpg, link=http://media.neckermann.de/image/101/480/7/27/927/101_219927.jpg, link=http://media.neckermann.de/image/101/210/7/27/927/101_219927.jpg]
public class Foo { static String jsonInput = "{" + "\"images\":" + "[" + "{" + "\"link\":\"http://media.neckermann.de/image/101/900/7/27/927/101_219927.jpg\"" + "}," + "{" + "\"link\":\"http://media.neckermann.de/image/101/480/7/27/927/101_219927.jpg\"" + "}," + "{" + "\"link\":\"http://media.neckermann.de/image/101/210/7/27/927/101_219927.jpg\"" + "}" + "]" + "}"; public static void main(String[] args) { GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES); Gson gson = gsonBuilder.create(); ImageUris uris = gson.fromJson(jsonInput, ImageUris.class); System.out.println(uris); } } class ImageUris { private ImageUri[] images; @Override public String toString() { return Arrays.toString(images); } } class ImageUri { private String link; @Override public String toString() { return "link=" + link; } }