1. 程式人生 > 其它 >SpringBoot中Jackson的過濾使用

SpringBoot中Jackson的過濾使用

在介面的返回物件中,可能會有一些屬性為null或者需要禁止某些欄位返回給客戶端。

在SpringBoot中可使用內建了Jackson實現這個需求

1. 過濾為null欄位

在實體類中使用@JsonInclude(JsonInclude.Include.NON_EMPTY)即可過濾調為null的欄位

 1 @Data
 2 @JsonInclude(JsonInclude.Include.NON_EMPTY)
 3 public class UserMessageVo {
 4 
 5     /**
 6      * 傳送方資訊
 7      */
 8     private UserDetail sendUserInfo;
9 10 /** 11 * 接收方資訊 12 */ 13 private UserDetail receiveUserInfo; 14 15 /** 16 * 傳送資訊 17 */ 18 private String message; 19 20 /** 21 * 傳送時間 22 */ 23 private Long createTime; 24 25 /** 26 * 傳送方id 27 */ 28 private Integer sendId; 29 30 /**
31 * 接收方id 32 */ 33 private Integer receiverId; 34 35 /** 36 * 釋出事件型別 1: 觸發使用者聊天記錄儲存redis事件 2:觸發聊天記錄儲存資料庫 37 */ 38 private Integer type; 39 40 /** 41 * 聊天記錄 42 */ 43 private List<LittleMessageHistory> historyList; 44 45 }
View Code

2. 過濾指定欄位

在實體類上使用@JsonIgnoreProperties(value = {"password"})即可,value可新增多個欄位,逗號分割。

 1 @Data
 2 @JsonIgnoreProperties(value = {"password"})
 3 public class UserDetail {
 4 
 5     private static final long serialVersionUID = 1L;
 6 
 7     /**
 8      * 使用者id
 9      */
10     private Integer id;
11 
12     /**
13      * 使用者名稱
14      */
15     private String username;
16 
17     /**
18      * 密碼
19      */
20     private String password;
21 
22     /**
23      * 暱稱
24      */
25     private String nickname;
26 
27     /**
28      * 手機號
29      */
30     private String phone;
31 
32     /**
33      * 郵箱
34      */
35     private String email;
36 
37     /**
38      * 狀態 0-->禁用  1-->啟用
39      */
40     private Integer status;
41 
42     /**
43      * 性別 -1-->未知  0-->女 1-->男
44      */
45     private Integer gender;
46 
47     /**
48      * 個性簽名
49      */
50     private String signature;
51 
52     /**
53      * 使用者來源 0-->小程式登入 1-->手機號登入
54      */
55     private Integer source;
56 }
View Code

3. 客戶端返回效果

本文來自部落格園,作者:EchoLv,轉載請註明原文連結:https://www.cnblogs.com/lvdeyinBlog/p/15010081.html