3

JSON から循環オブジェクトを削除するために Jackson の @JsonIdentityInfo を使用しています。

以下が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があるため、これをBreadth firstとして実装したいです。つまり、最初のレベルはオブジェクトを削除してプロパティを与える必要がありますが、深さレベルはこれを行う必要があります。次のように取得する方法はありますか?

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

1 に答える 1

2

いいえ、シリアル化は深さ優先で進行し、それを変更するには、JSON を書き込む前に出力グラフ全体をメモリにバッファリングする必要がある可能性があります。

于 2016-06-23T04:39:16.840 に答える