記錄一個(gè)簡(jiǎn)單的使用,前后端開發(fā)過程中常常會(huì)遇到null值返回,為了忽略null值字段(可能是不需要的字段,所以我們需要忽略這些字段,我們可以使用這個(gè)注解)。簡(jiǎn)單的一個(gè)知識(shí)點(diǎn),希望對(duì)你有用!!!
@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值字段會(huì)被忽略
@JsonInclude用法:
JsonInclude.Include.ALWAYS 這個(gè)是默認(rèn)策略,任何情況下都序列化該字段,和不寫這個(gè)注解是一樣的效果。
JsonInclude.Include.NON_NULL 這個(gè)最常用,即如果加該注解的字段為null,那么就不序列化這個(gè)字段了。
JsonInclude.Include.NON_ABSENT 這個(gè)包含NON_NULL,即為null的時(shí)候不序列化,詳情看源碼。
JsonInclude.Include.NON_EMPTY 這個(gè)屬性包含NON_NULL,NON_ABSENT之后還包含如果字段為空也不序列化。
JsonInclude.Include.NON_DEFAULT 這個(gè)屬性是如果該字段為默認(rèn)值的話就不序列化。
JsonInclude.Include.USE_DEFAULTS 使用默認(rèn)值的情況下就不序列化。
JsonInclude.Include.CUSTOM 這個(gè)是自定義包含規(guī)則,官方的解釋如下:如果使用@JsonInclude#value=
JsonInclude.Include.CUSTOM并通過@JsonInclude#value filter指定一個(gè)篩選器類,則僅當(dāng)該屬性值未被篩選器類篩選時(shí),才會(huì)對(duì)其進(jìn)行序列化。filter類的equals()方法用于篩選值;如果返回“true”,則不序列化值。類似地,如果使用@JsonInclude#content=
JsonInclude.Include.CUSTOM并通過@JsonInclude#content filter指定篩選器類,則如果篩選器類的equals方法返回true,則不會(huì)序列化目標(biāo)屬性的內(nèi)容值。