如果我想反序列化以下JSON格式,我的POJO声明应该是什么:
{
"id":2,
"content":"skfdjhsfjhsfjkshdkjfhskdjf",
"created_at":"2012-11-14T00:10:59Z",
"feeds":
[
{
"feed":{"name":"twitter"}
}
]
}
目前我的POJO看起来像这样:
Broadcast.java - outtermost对象
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;
}
}
答案 0 :(得分:1)
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");
}
}