Я испытываю некоторые затруднения из-за GSON, главным образом десериализовывая от JSON до POJO.
У меня есть следующий JSON:
{
"events":
[
{
"event":
{
"id": 628374485,
"title": "Developing for the Windows Phone"
}
},
{
"event":
{
"id": 765432,
"title": "Film Makers Meeting"
}
}
]
}
Со следующим POJO...
public class EventSearchResult {
private List<EventSearchEvent> events;
public List<EventSearchEvent> getEvents() {
return events;
}
}
public class EventSearchEvent {
private int id;
private String title;
public int getId() {
return id;
}
public String getTitle() {
return title;
}
}
... и я десериализовываю со следующим кодом, где вход json является json выше
Gson gson = new Gson();
return gson.fromJson(jsonInput, EventSearchResult.class);
Однако я не могу заставить список событий заполнять правильно. Заголовок и идентификатор являются всегда пустыми. Я уверен, что пропускаю что-то, но я не уверен что. Какая-либо идея?
Спасибо
Хорошо, я понял это. Я подтверждаю это тем, что накануне вечером провел долгий день программирования и мало спал!
Структура данных «события» содержала несколько «событий», каждое из которых содержит тип «событие». Мне пришлось переместить EventSearchEvent в новый класс под названием EventContainer. Этот контейнер событий содержит одно поле «событие». Это «событие» было «EventSearchEvent». Поэтому, когда GSON перебирал массив JSON, он видел Контейнер (который имеет тип «события»), а затем внутри этого объекта искал элемент «событие». Когда он наконец обнаружил, что правильно загрузил идентификатор и заголовок.
Вкратце: у меня неправильно построена иерархия объектов.