使用GSON解析JSON

Don*_*ker 5 android json gson

我在使用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.我确定我错过了什么,但我不确定是什么.任何的想法?

谢谢

Don*_*ker 4

好吧,我明白了。我通过前一天晚上几乎没有睡觉的漫长一天编码来证明这一点!

“事件”数据结构包含多个“事件”,每个事件包含一个“事件”类型。我必须将 EventSearchEvent 移至名为 EventContainer 的新类下。该事件容器包含一个字段“事件”。这个“事件”就是“EventSearchEvent”。因此,当 GSON 迭代 JSON 数组时,它会看到容器(类型为“事件”),然后在该对象内部查找“事件”成员。当它最终发现它正确加载了 id 和 title 时。

缺点是:我没有正确构建对象层次结构。