問題タブ [jsonidentityinfo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 幅優先のジャクソンの @JsonIdentityInfo
JSON から循環オブジェクトを削除するために Jackson の @JsonIdentityInfo を使用しています。
以下がJavaクラス
Class A, B, C
であり、以下が構造であるとします。
私のオブジェクトは(A)です
にオブジェクトを変更しています
Cには同じIDがあるため、これをBreadth firstとして実装したいです。つまり、最初のレベルはオブジェクトを削除してプロパティを与える必要がありますが、深さレベルはこれを行う必要があります。次のように取得する方法はありますか?
java - Jackson でプロパティを強制的に ID にシリアル化する
私はクラスを持っています
(免責事項、私はKotlinで書いていますが、より多くの人が読めるようにJavaに翻訳しています)
のリストを含む別のオブジェクトをシリアライズしたいFoo
のですが、シリアライズされたすべてのエントリをfooList
オブジェクトではなく ID にしたいと考えています。頭に浮かんだ 1 つの解決策は、それらが有向非巡回グラフを形成するため、シリアル化の前にトポロジー的に逆の順序で並べ替えることでした。しかし、それは明らかに完璧な解決策ではないので、そのようなことを行うための注釈またはその他のクリーンなジャクソンの方法があるかどうか疑問に思っています。
編集:
Foo のリストを含むクラスは次のようになります。
Bar
そして、この JSON からインスタンスを逆シリアル化すると:
出力を入力と同じにしたいのですが、代わりに次のようにします。