3

我正在使用 Jackson 的 @JsonIdentityInfo 从 JSON 中删除圆形对象。

假设下面是 Java 类 Class A, B, C ,下面是结构,

Class A{
     int id;
     B b;
     C c;
}
Class B{
     int id;
     C c;
}

我的对象是(A)

{
     id:1,
     b:{
          id: 2,
          c:{
            id: 3
            }
     },
     c: {
        id: 3
     }
}

它将对象更改为

{
         id:1,
         b:{
              id: 2,
              c:{
                id: 3
                }
         },
         c: 3
    }

因为 C 具有相同的 id,所以我希望将其实现为广度优先,即第一级应该是删除对象并赋予属性,但深度级别应该这样做,有没有办法像下面这样得到它?

{
             id:1,
             b:{
                  id: 2,
                  c:3
             },
             c: {id:3}
        }
4

1 回答 1

2

不,序列化以深度优先进行,而改变这一点可能需要在写入 JSON 之前在内存中缓冲整个输出图。

于 2016-06-23T04:39:16.840 回答