我在使用GSON时遇到了一些麻烦,主要是从JSON反序列化到POJO.
我有以下JSON:
{
"events":
[
{
"event":
{
"id": 628374485,
"title": "Developing for the Windows Phone"
}
},
{
"event":
{
"id": 765432,
"title": "Film Makers Meeting"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
随着以下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;
}
}
Run Code Online (Sandbox Code Playgroud)
...我正在使用以下代码进行反序列化,其中json输入是上面的json
Gson gson = new Gson();
return gson.fromJson(jsonInput, EventSearchResult.class);
Run Code Online (Sandbox Code Playgroud)
但是,我无法正确填充事件列表.标题和ID始终为null.我确定我错过了什么,但我不确定是什么.任何的想法?
谢谢
好吧,我明白了。我通过前一天晚上几乎没有睡觉的漫长一天编码来证明这一点!
“事件”数据结构包含多个“事件”,每个事件包含一个“事件”类型。我必须将 EventSearchEvent 移至名为 EventContainer 的新类下。该事件容器包含一个字段“事件”。这个“事件”就是“EventSearchEvent”。因此,当 GSON 迭代 JSON 数组时,它会看到容器(类型为“事件”),然后在该对象内部查找“事件”成员。当它最终发现它正确加载了 id 和 title 时。
缺点是:我没有正确构建对象层次结构。
| 归档时间: |
|
| 查看次数: |
3210 次 |
| 最近记录: |