22.Jackson中@JsonProperty等常用註解
阿新 • • 發佈:2021-08-28
轉載地址,請檢視原文:https://www.cnblogs.com/arebirth/p/jsonjacksonannotation.html
目錄- 轉載地址,請檢視原文:https://www.cnblogs.com/arebirth/p/jsonjacksonannotation.html
- 1.@JsonProperty
- 2.@JsonIgnore
- 3.@JsonFormat
- 4.@JsonIgnoreProperties
Java生態圈中有很多處理JSON和XML格式化的類庫,Jackson是其中比較著名的一個。雖然JDK自帶了XML處理類庫,但是相對來說比較低階,本文將介紹的Jackson常用註解:精簡概述
Jackson的依賴
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.3</version>
</dependency>
1.@JsonProperty
此註解作用於屬性上,作用是把該屬性的名稱序列化成另一個自己想要的名稱
對屬性名進行重新命名,在java裡我們墨守規定駝峰命名,但是在一些特殊的場合下,比如資料庫是下劃線等,再此我們就可以進行對映,對屬性名稱重新命名,比如在很多場景下Java物件的屬性是按照規範的駝峰書寫,但在資料庫設計時使用的是下劃線連線方式,此處在進行對映的時候使用
public class CatNode { //@JsonProperty 指定將java物件轉化為json格式的時候,對應的key @JsonProperty(value = "u") private String url; @JsonProperty(value = "n") private String name; @JsonProperty(value = "i") private List<?> list; public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<?> getList() { return list; } public void setList(List<?> list) { this.list = list; } }
2.@JsonIgnore
註解用於屬性或者方法上,用來完全忽略被註釋的欄位和方法對應的屬性,即便這個還有其它註解,
一般標記在屬性或者方法上,返回的json資料不包含被該註解引用的屬性或者方法
例如下面程式碼中:我們不想讓a屬性被轉換成json格式資料,即這個類即使轉換成json格式,也不會包含該屬性欄位。
public class Test{
@JsonIgnore
private String a;
private String b;
}
3.@JsonFormat
可以幫助我們完成格式轉換,
例如我們在進行json轉換的時候包含日期,通常不經過處理的話會是一個不是很友好的格式,那麼我們就可以通過@JsonFormat來進行指定格式
例如:
@JsonFormat(timezone="GTM+8",pattern="yyyy-MM-dd HH:mm:ss")
private Date createDate;
4.@JsonIgnoreProperties
可以幫我們忽略類中不存在的欄位
例如:@JsonIgnoreProperties(ignoreUnknown = true)
還可以指定忽略類中多個欄位在類被轉成json的格式忽略掉
@JsonIngoreProperties(value={"name","sex"})
public class Test{
private String name;
private String pwd;
private String sex;
}
@JsonIgnoreProperties和@JsonIgnore我們日常使用中最大的區別就是前者修飾類的,後者多用於修飾類中的屬性
具體可以檢視官方文件: