1.@JsonIgnoreProperties
指定的字段不会被序列化,如下则ExamPaper的directory字段不会被序列化
@OneToMany(mappedBy = "directory", fetch = FetchType.LAZY) @JsonIgnoreProperties("directory") private List<ExamPaper> examPapers;
2.@JsonIgnore
被注解的字段不会被序列化
3.@JsonManagedReference和@JsonBackReference
序列化时,@JsonBackReference标注的属性在会被忽略。@JsonManagedReference标注的属性则会被序列化。
在序列化时,@JsonBackReference的作用相当于@JsonIgnore,此时可以没有@JsonManagedReference。
反序列化时,如果没有@JsonManagedReference,则不会自动注入@JsonBackReference标注的属性(被忽略的父或子);如果有@JsonManagedReference,则会自动注入自动注入@JsonBackReference标注的属性。
4.@JsonIdentityInfo
被注解的实体类每次被序列化时,Jackson都会被为它生成一个标识id,若遇到id相同的对象(即同一个对象),则不会再次对其序列化,直接忽略,可以断绝循环引用