Java 使用Jackson序列化时解析循环引用:双向
我有一种情况,两个对象之间存在循环引用,这导致在使用jackson序列化任何对象时出错。以下是示例情况:Java 使用Jackson序列化时解析循环引用:双向,java,json,hibernate,serialization,jackson,Java,Json,Hibernate,Serialization,Jackson,我有一种情况,两个对象之间存在循环引用,这导致在使用jackson序列化任何对象时出错。以下是示例情况: Class A { private B b; } Class B { private A a; } Jackson以@JsonManagedReference和@JsonBackReference注释的形式为这种情况提供了解决方案。当一个人只想在结果json中引用另一个类中的一个类时,该解决方案工作得非常好。例如,以下代码起作用: Class A { @JsonMa
Class A {
private B b;
}
Class B {
private A a;
}
Jackson以@JsonManagedReference和@JsonBackReference注释的形式为这种情况提供了解决方案。当一个人只想在结果json中引用另一个类中的一个类时,该解决方案工作得非常好。例如,以下代码起作用:
Class A {
@JsonManagedReference
private B b;
}
Class B {
@JsonBackReference
private A a;
}
这将在尝试序列化A时引用B
我希望反过来也是正确的。我希望在序列化A时使用字段b,在序列化b时使用字段A。这就是我尝试过的
Class A {
@JsonManagedReference("abc")
@JsonBackReference("xyz")
private B b;
}
Class B {
@JsonBackReference("abc")
@JsonManagedReference("xyz")
private A a;
}
这不管用。如何实现这一点?从2.0版开始,Jackson就为这个问题提供了解决方案
@引入JsonIdentityInfo注释就是为了解决这个问题