力杰克逊反向引用首先得到解决

时间:2016-11-28 14:38:21

标签: java json jackson jackson-databind

我有一个像这样的JSON对象树:

{
    "name": "parent",
    "children": [
        {
            "name":"child",
            "value":5
        }
    ]
}

在Java中,父类有一个标有@JsonManagedReference的子项列表,子类具有相应的@JsonBackReference。我的问题是value属性的setter方法取决于父级。遗憾的是,在我的所有实验中,后向引用最后被解析,因此当设置值时,子对象中的父字段仍然为空。有没有办法改变这个反序列化顺序?或者是否有另一种方法可以优雅地解决这个问题,而不会引入不必要的领域。

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);
    }
}

0 个答案:

没有答案