@JsonInclude(JsonInclude.Include.NON_NULL)標記是jackson包提供的json序列化方法,已經集成於Springboot2.0中,此方法的配置意在可以對實體json序列化的時候進行對應的數值處理。
//將該標記放在屬性上,如果該屬性為NULL則不參與序列化 //如果放在類上邊,那對這個類的全部屬性起作用 //Include.Include.ALWAYS 默認 //Include.NON_DEFAULT 屬性為默認值不序列化 //Include.NON_EMPTY 屬性為 空(“”) 或者為 NULL 都不序列化 //Include.NON_NULL 屬性為NULL 不序列化
此注解適用於類標頭,可以對實體類引用會自動按規則過濾實體類生成的json數據,也可以通過實現Serializable接口來標識此注解,用於對類的最終json結構進行過濾處理。如下:
@Data @JsonInclude(JsonInclude.Include.NON_NULL) public class Response<T> implements Serializable { //請求成功返回碼為:0000 private static final String suucessCode = "0000"; //返回數據 private T data; //返回碼 private String code; //返回描述 private String msg; public Response(){ this.code = suucessCode; this.msg = "請求成功"; } public Response(String code,String msg){ this(); this.code = code; this.msg = msg; this.data = data; } public Response(T data){ this(); this.data = data; } }
以及對Pojo類的引用:
@Data @JsonInclude(JsonInclude.Include.NON_NULL) public class User_table { private Integer User_Id; private String UserName; private String Password; private Integer Administrator_Id; private Integer Role_Id; }
此處的加注解之前的瀏覽結果為
除了注解式配置以外SpringBoot還提供了Application.yml配置方法
spring: jackson: default-property-inclusion: non_null
此時的返回值結果與上圖一樣
注:application.yml這個地方的配置是全局配置可能會影響到其他的某些服務接口,所以謹慎配置。
參考文章:
https://blog.csdn.net/qq_31404603/article/details/88560166