SpringBoot中Jackson的過濾使用
阿新 • • 發佈:2021-07-14
在介面的返回物件中,可能會有一些屬性為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;View Code9 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 }
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