私はクラスを持っています
(免責事項、私はKotlinで書いていますが、より多くの人が読めるようにJavaに翻訳しています)
@JsonIdentityInfo(
ObjectIdGenerators.PropertyGenerator.class,
"id"
)
public class Foo implements Serializable {
public int id;
public List<Foo> fooList;
}
のリストを含む別のオブジェクトをシリアライズしたいFoo
のですが、シリアライズされたすべてのエントリをfooList
オブジェクトではなく ID にしたいと考えています。頭に浮かんだ 1 つの解決策は、それらが有向非巡回グラフを形成するため、シリアル化の前にトポロジー的に逆の順序で並べ替えることでした。しかし、それは明らかに完璧な解決策ではないので、そのようなことを行うための注釈またはその他のクリーンなジャクソンの方法があるかどうか疑問に思っています。
編集:
Foo のリストを含むクラスは次のようになります。
public class Bar implements Serializable {
public List<Foo> fooList;
}
Bar
そして、この JSON からインスタンスを逆シリアル化すると:
{
"fooList": [
{
"id": 0,
"fooList": [1]
},
{
"id": 1,
"fooList": []
}
]
}
出力を入力と同じにしたいのですが、代わりに次のようにします。
{
"fooList": [
{
"id": 0,
"fooList": [
{
"id": 1,
"fooList": []
}
]
},
1
]
}