我在使用 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);
但是,我无法正确填充事件列表。标题和 ID 始终为空。我确信我错过了一些东西,但我不确定是什么。任何想法?
Thanks
好吧,我明白了。我通过前一天晚上几乎没有睡觉的漫长一天编码来证明这一点!
“事件”数据结构包含多个“事件”,每个事件包含一个“事件”类型。我必须将 EventSearchEvent 移至名为 EventContainer 的新类下。该事件容器包含一个字段“事件”。这个“事件”就是“EventSearchEvent”。因此,当 GSON 迭代 JSON 数组时,它会看到容器(类型为“事件”),然后在该对象内部查找“事件”成员。当它最终发现它正确加载了 id 和 title 时。
缺点是:我没有正确构建对象层次结构。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)