我试图序列化一个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
}
我评论了不会被序列化的领域。如果我希望它们都被序列化,我该怎么办?有没有办法做到这一点?