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相同的對象(即同一個對象),則不會再次對其序列化,直接忽略,可以斷絕循環引用