Resolving Circular Reference While Serializing with Jackson: Bidirectional
我有一种情况,在两个对象之间存在循环引用,这会导致在使用Jackson序列化任何对象时出错。以下是示例情况:
1 2 3 4 5 6 | Class A { private B b; } Class B { private A a; } |
杰克逊以
1 2 3 4 5 6 7 8 | Class A { @JsonManagedReference private B b; } Class B { @JsonBackReference private A a; } |
号
在试图序列化a时,它将具有b的引用。
我也希望反面是正确的。当我序列化A时,我想要字段B,当我序列化B时,我想要字段A。这是我尝试过的。
1 2 3 4 5 6 7 8 9 10 | Class A { @JsonManagedReference("abc") @JsonBackReference("xyz") private B b; } Class B { @JsonBackReference("abc") @JsonManagedReference("xyz") private A a; } |
这不管用。如何实现这一目标?
从EDOCX1版开始,为这个问题提供了一个解决办法。
介绍了注释以照顾这一问题。