2012-11-24 77 views
0

反序列化的子節點應該是什麼我的POJO聲明,如果我想反序列化JSON如下格式:與GSON

{ 
"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 - 廣播的內子,其可以是一個陣列,並且每個進料具有名稱屬性:

public class Feeds { 

    private String name; 

    public Feeds() {} 

    public String getName() { 
     return name; 
    } 
} 
+0

你不需要setter方法,如果你想deserialise? –

回答

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"); 
    } 
}