SpringBoot2.x系列教程(十二)Jackson常用註解使用詳解

在前些文章中我們曾提到一個問題,比如在Spring Boot中返回的對象,我們並不想直接返回所有的欄位或者想指定欄位的別名,那麼該如何處理呢?

Jackson為我們提供了一些相關的註解來幫助我們處理以上問題。下面,我們逐個通過實例來了解一下Jackson針對Java對象的常用註解使用。

使用場景是用戶登錄時會使用一個LoginUser對象,該對象基本定義如下:

public class LoginUser {  	private String username;  	private String password;  	private Date loginTime;  	// getter/setter  }

@JsonProperty:作用於屬性上,用來為轉的JSON的Key指定一個別名。

比如,username需要返回前端為phone,則使用@JsonProperty註解進行聲明。

@JsonProperty("phone")  private String username;

返回的Json字元串中username對應的key便為phone。

@Jsonlgnore:作用於屬性上,用來忽略此屬性。

比如,password不進行返回,則使用該屬性。

@JsonIgnore  private String password;

@JsonIgnoreProperties:作用於類上,忽略一組屬性。

比如,再新增一個remark欄位,同時忽略password和remark。

@JsonIgnoreProperties({"password","remark"})  public class LoginUser {}

@JsonFormat:作用於屬性上,對日期格式化。

比如,當個別類的日期需要訂製化處理,則使用該註解。

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:s