次のような JSON オブジェクト ツリーがあります。
{
"name": "parent",
"children": [
{
"name":"child",
"value":5
}
]
}
Java では、親クラスには でマークされた子のリストが@JsonManagedReference
あり、子クラスには対応する があり@JsonBackReference
ます。私の問題は、value
プロパティのセッター メソッドが親に依存することです。悲しいことに、すべての実験で後方参照が最後に解決されるため、値が設定されたときに子オブジェクトの親フィールドはまだ null です。この逆シリアル化の順序を変更する方法はありますか? または、不要なフィールドを導入することなく、これをエレガントに解決する別の方法があります。
public class Parent {
@JsonManagedReference
private List<Child> children;
private String name;
//getter/setter
public int doStuff(int input) {
return 0; //complex calculations here
}
}
public class Child{
@JsonBackReference
private Parent parent;
private String name;
private int value;
//getter/setter
public void setValue(int v) {
this.value = getParent().doStuff(v);
}
}