Java 杰克逊一对一连载
我正在Jackson中寻找一种方法,允许根据根元素对关系进行序列化。例如,我的关系不是真正的父母/孩子。两个实体都可以查询Java 杰克逊一对一连载,java,json,jackson,cycle,bidirectional-relation,Java,Json,Jackson,Cycle,Bidirectional Relation,我正在Jackson中寻找一种方法,允许根据根元素对关系进行序列化。例如,我的关系不是真正的父母/孩子。两个实体都可以查询 Address { @JsonBackReference Company company; String line1; String city; String state; String zip; String country; } Company { Address mainAddress; Li
Address {
@JsonBackReference
Company company;
String line1;
String city;
String state;
String zip;
String country;
}
Company {
Address mainAddress;
List<Address> locations;
String name;
}
地址{
@JsonBackReference
公司;
字符串行1;
字符串城市;
字符串状态;
拉链;
弦国;
}
公司{
主地址;
列出地点;
字符串名;
}
JsonBackReference使得序列化为json时没有循环引用。然而,这也导致我不知道公司的地址。如果我是上市公司,那么地址会回来,一切都很好。但如果我列出地址,我希望看到该公司被序列化。有没有办法做到这一点?您需要使用Jackson的
@JsonTypeInfo
进行序列化和反序列化。请查看以了解更多详细信息。如果您有静态的内部类,请尽量避免使用1.9.8
版本(这有一个bug,会导致StackOverflowerError)。您能对此进行一点扩展吗?我不想用这个例子来解决哪个实现是反序列化的。序列化地址时,我希望它是客户端,而不是客户端地址。当我反序列化一个客户端时,我想要它的地址,而不是地址的客户端。