gpt4 book ai didi

java - Jackson - 具有双向关系的实体序列化(避免循环)

转载 作者:IT老高 更新时间:2023-10-28 12:46:26 26 4
gpt4 key购买 nike

我有两个实体:

Parent {
Child[] children;
}

and

Child {
Parent parent;
}

我知道 @JsonBackReference@JsonManagedReference。它们很好,如果我要序列化 ​​Parent 的实例。

但我还需要传输 Child 的实例,并且我希望填充 parent 字段。

换句话说:

  1. Parent 序列化时,它应该有 children 但它们的父字段可能为空(可以通过使用 json 引用注释来解决)。
  2. Child 序列化时,它应该有 parent 和它们的 children(但 children 不必填充了 parent

有没有办法使用标准的 jackson 功能来解决这个问题?

即跳过已经序列化的实体的序列化,而不是标记符合或不符合序列化条件的字段。

最佳答案

Jackson 2.0 确实支持完整的循环对象引用。有关示例,请参见“Jackson 2.0 released”(“处理任何对象图,甚至是循环对象图!”一节)。

基本上,对于需要 id/idref 样式处理的类型,您需要使用新的 @JsonIdentityInfo。在您的情况下,这将是 ParentChild 类型(如果一个扩展另一个,只需将其添加到父类(super class)型就可以了)。

关于java - Jackson - 具有双向关系的实体序列化(避免循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10065002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com