【问题标题】:Jackson One-to-One serialization杰克逊一对一序列化
【发布时间】:2012-09-28 14:29:51
【问题描述】:

我正在 Jackson 中寻找一种方法来允许根据根元素对关系进行序列化。例如,我的关系不是真正的父母/孩子。两个实体都可以查询。

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

Company {
    Address mainAddress;

    List<Address> locations;
    String name;
}

JsonBackReference 使得在序列化为 json 时没有循环引用。但是,这也导致我不知道地址的公司。如果我要上市公司,那么地址会回来,一切都很好。但如果我列出地址,我希望看到公司被序列化。有没有办法做到这一点?

【问题讨论】:

    标签: java json jackson cycle bidirectional-relation


    【解决方案1】:

    您需要使用 Jackson 的 @JsonTypeInfo 进行序列化和反序列化。请查看Jackson's documentation 了解更多详情。如果您有静态内部类,请尽量避免使用1.9.8 版本(这有一个错误并导致 StackOverflowError)。

    【讨论】:

    • 你能稍微扩展一下吗?我不是试图用这个例子来解决哪个实现被反序列化。序列化地址时,我希望它是客户端,而不是客户端地址。当我反序列化一个客户端时,我想要它的地址,而不是地址的客户端。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 2020-12-24
    • 2015-04-07
    • 1970-01-01
    • 2016-01-14
    • 2014-10-10
    • 2016-12-07
    相关资源
    最近更新 更多