如果我想反序列化以下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");
    }
}

09-26 14:00