如果我想反序列化以下JSON格式,我的POJO声明应该是什么:
{
"id":2,
"content":"skfdjhsfjhsfjkshdkjfhskdjf",
"created_at":"2012-11-14T00:10:59Z",
"feeds":
[
{
"feed":{"name":"twitter"}
}
]
}
目前,我的POJO如下所示:
Broadcast.java-最外面的对象
public class Broadcast {
private String content;
private String created_at;
private Feeds feed[];
private int id;
public Broadcast() { }
public int getId() { return id; }
public String getContent() { return content; }
public String getCreatedAt() { return created_at; }
}
Feed.java-Broadcast的内部子级,可以是一个数组,每个feed都有一个name属性:
public class Feeds {
private String name;
public Feeds() {}
public String getName() {
return name;
}
}
最佳答案
private Feeds feed[];
应该private Feeds[] feeds;
。
实际上,[]
的位置无关紧要,但是建议将其放置在类型旁边,因为这样可以使阅读更加清晰。这里的问题是变量名不正确。
另外,如果您仔细看一下:
"feeds":
[
{
"feed":{"name":"twitter"}
}
]
您会注意到
feeds
确实是一个数组,但是"feed":{"name":"twitter"}
表示一个包含键值对(feed
)的变量({"name":"twitter"}
),因此您的Feeds
类应类似于:class Feeds {
private Map<String, String> feed;
public Feeds() {}
public String getName() {
return feed.get("name");
}
}