2014-10-16 58 views
1

我收到以下JSON:傑克遜不反序列化子列表對象

{"firstName":"charle","lastName":"charly","books":[{"title":"navle"}]} 

,我嘗試將它解析爲這傑克遜對象:

@JsonIgnoreProperties(ignoreUnknown = true) 
public class Person { 

    @Id @ObjectId 
    private String _id; 

    private String firstName; 
    private String lastName; 
    List<Book> books; 
// getters/setters .. 
} 

的問題是,對象「人」我得到的書籍總是空着的!

我失蹤了什麼?

回答

1

本書的attribut 「稱號」 應該是公共的,或者你必須註解他消氣這樣的:

@JsonProperty("title") 
public String getTitle() { 
    return title; 
} 
2

使書籍列表公開,Jackson將只序列化「可見」屬性。 Plus書籍的屬性必須是公開的。

public List<Book> books; 

或更好地創造一個getter

@JsonProperty("books") 
public List<Books> getBooks() { 
    return books; 
} 
+0

THX爲你的暗示。它在我將屬性「title」設置爲public而不是private時起作用。註釋也能很好地工作 – Dupont 2014-10-16 12:48:55

+0

沒問題...接受或提高答案 – Drejc 2014-10-16 13:36:11