1

次のような 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);
    }
}
4

0 に答える 0