Парсинг json с помощью gson
Доброго времени суток!
Я пытаюсь парсить json строку с помощью библиотеки gson. У меня есть такой класс:
class Foo {
int Id;
String Name;
}
и, например, такая строка:
{response: [123, { id: 1, name: 'qwerty'}, { id: 2, name: 'asdfgh'}, ]}
Я пытаюсь десериализовать ее так:
Gson gson = new Gson();
Foo[] res = gson.fromJson(jsonStr, Foo[].class);
Но при попытке запустить это я получаю ошибку. Проблема тут в том, что строка содержит не массив json объектов, а объект с полем response, который является массивом, а я хотел бы десериализовать только сам массив. Вторая проблема в том, что в массиве, кроме элементов, которые можно десериализовать как объекты класса Foo, есть еще и простое число 123, которое десериализовать как Foo нельзя.
У меня такой вопрос: можно ли как-то "сказать" десериализатору, что я хочу десериализовывать только содержимое объекта response и что я хочу пропустить значение 123 в массиве и не десериализовывать его? Или нужно парсить строку и как-то выделять в ней нужные данные? Очень не хотелось бы делать это вручную.