无法使用jackson序列化双向关系

时间:2015-12-16 23:28:31

标签: java json serialization jackson

我试图序列化一个Object以通过套接字发送它。 但问题是当我序列化对象时它将落入无限递归。 我通过使用this post中提到的jackson @JsonBackReference@JsonManagedReference注释解决了递归问题,但问题是,它仍然不会序列化子对象。即使我使用@JsonIgnore它也不会完全序列化字段,所以当我在服务器上反序列化它时,我会有一个空字段。

这是我的课程:

public class Repository {
    public String name;
    @JsonIgnore
    public ArrayList<UserRole> contributors = new ArrayList<UserRole>();
    public User self;
    @JsonManagedReference
    public ArrayList<FileInfo> files = new ArrayList<FileInfo>();
    public RepositoryType repositoryType;
    @JsonIgnore
    public String path;
}

public class FileInfo {

    private Date addedDate;
    private String path;
    private String name;
    @JsonBackReference
    public Repository relatedRepository; //this field wont be serialized
}

我评论了不会被序列化的领域。如果我希望它们都被序列化,我该怎么办?有没有办法做到这一点?

0 个答案:

没有答案