0

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

1 回答 1

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");
    }
}
于 2012-11-24T18:38:53.760 回答