2014-10-16 119 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