杰克逊 - 无法写出json - 无限递归

时间:2015-04-07 14:22:07

标签: java json jackson

我正在使用Jackson 2.3而且我得到了Jackon无限递归错误。

A类

public class A{

    @OneToMany(mappedBy = "parent")
    @LazyCollection(LazyCollectionOption.FALSE)
    //option2: @JsonManagedReference
    private List<B> listMembers;

    public List<B> getListMembers(){
        return this.listMembers;
    }

    public void setListMembers(List<B> listMembers){
        this.listMembers = listMembers;
    }
}

B类

public class B{

    @ManyToOne(cascade = CascadeType.REFRESH)
    @JoinColumn(name = "a_id")
    // Option1: @JsonIgnore
    // Option2: @JsonBackReference
    private A parent;

    public A getParent(){
        return this.parent;
    }

    public void setParent(A parent){
        this.parent = parent;
    }
}

我尝试了以下选项

第一个选项位于属性B上的parent@JsonIgnore注释。

第二个选项位于属性A上的listMembers类,@JsonManagedReference放置B,属于parent @JsonBackReference放置{{1}}。

我仍然遇到这个问题。

我正在使用的jar文件是

  • 杰克逊 - 注解-2.3.0.jar
  • 杰克逊 - 芯 - 2.3.2.jar
  • 杰克逊 - 数据绑定-2.3.2.jar

请帮助。

0 个答案:

没有答案