關於注解@JsonInclude簡述


@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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM