2012-09-28 83 views
0

我正在尋找一種方式在傑克遜允許序列化的關係取決於根元素。例如,我有一種不是真正父母/孩子的關係。兩個實體都可以被查詢。傑克遜一對一序列化

Address { 
    @JsonBackReference 
    Company company; 
    String line1; 
    String city; 
    String state; 
    String zip; 
    String country; 
} 

Company { 
    Address mainAddress; 

    List<Address> locations; 
    String name; 
} 

JsonBackReference使它在序列化到json時沒有循環引用。但是,這也導致我不知道地址的公司。如果我是上市公司,那麼地址就會回來,一切都很好。但是,如果我列出地址,我希望看到該公司被序列化。有沒有辦法做到這一點?

回答

0

您需要使用Jackson的@JsonTypeInfo進行序列化和反序列化。請參閱Jackson's documentation瞭解更多詳情。儘量避免1.9.8版本,如果你有靜態內部類(這有一個錯誤,並導致StackOverflowError)。

+0

你可以擴展一下嗎?我沒有試圖通過這個例子來解決哪個實現是反序列化的。序列化地址時,我想要它是客戶端,但不是客戶端地址。當我反序列化客戶端時,我想要它的地址,但不是地址'客戶端。 – SchraderMJ11