記錄一個簡單的使用,前后端開發過程中常常會遇到null值返回,為了忽略null值字段(可能是不需要的字段,所以我們需要忽略這些字段,我們可以使用這個注解)。簡單的一個知識點,希望對你有用!!!
@JsonInclude(JsonInclude.Include.NON_NULL)
private String name;
private String color;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
添加@JsonInclude(
JsonInclude.Include.NON_NULL)注解,null值字段會被忽略
@JsonInclude用法:
JsonInclude.Include.ALWAYS 這個是默認策略,任何情況下都序列化該字段,和不寫這個注解是一樣的效果。
JsonInclude.Include.NON_NULL 這個最常用,即如果加該注解的字段為null,那么就不序列化這個字段了。
JsonInclude.Include.NON_ABSENT 這個包含NON_NULL,即為null的時候不序列化,詳情看源碼。
JsonInclude.Include.NON_EMPTY 這個屬性包含NON_NULL,NON_ABSENT之后還包含如果字段為空也不序列化。
JsonInclude.Include.NON_DEFAULT 這個屬性是如果該字段為默認值的話就不序列化。
JsonInclude.Include.USE_DEFAULTS 使用默認值的情況下就不序列化。
JsonInclude.Include.CUSTOM 這個是自定義包含規則,官方的解釋如下:如果使用@JsonInclude#value=
JsonInclude.Include.CUSTOM并通過@JsonInclude#value filter指定一個篩選器類,則僅當該屬性值未被篩選器類篩選時,才會對其進行序列化。filter類的equals()方法用于篩選值;如果返回“true”,則不序列化值。類似地,如果使用@JsonInclude#content=
JsonInclude.Include.CUSTOM并通過@JsonInclude#content filter指定篩選器類,則如果篩選器類的equals方法返回true,則不會序列化目標屬性的內容值。