欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于@JsonProperty和@JSONField注解的區(qū)別及用法

 更新時(shí)間:2022年08月30日 09:00:18   作者:堅(jiān)持與努力  
這篇文章主要介紹了關(guān)于@JsonProperty和@JSONField注解的區(qū)別及用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@JsonProperty和@JSONField注解區(qū)別及用法

1. 目的

都是為了解決bean與json字段不一致問(wèn)題,或者字段定義不符合前端所需要的標(biāo)準(zhǔn)

2. 區(qū)別

1.框架不同:

@jsonProperty是 Jackson的包,而@jsonfield是fastjson的包

2.用法不同:

(1)bean轉(zhuǎn)換成Json字符串:

  • @JsonProperty:ObjectMapper().writeValueAsString(Object value)
  • @JSONField:ObjectMapper().readValue(String content, Class valueType)

(2)Json字符串轉(zhuǎn)化為bean:

  • @JsonProperty:ObjectMapper().readValue(String content, Class valueType)
  • @JSONField:JSONObject.parseObject(String content, Class valueType)

(3)@JSONField這個(gè)注解可以用于get、set以及屬性上面

public class Test{
	
	/*
		注解在屬性上的時(shí)候可以設(shè)置一些序列化、格式化的屬性
		@JSONField(serialize = false)---->序列化的時(shí)候忽略這個(gè)屬性
		@JSONField(format = "yyyyMMdd")---->序列化和反序列化額時(shí)候使用yyyyMMdd,一般在Date類型的字段上使用
	*/	
	@JSONField(serialize = false)
	public String Name;
	/*
		注解在set方法表示json轉(zhuǎn)成bean的時(shí)候會(huì)將json中的Name屬性賦值給實(shí)體類的Name
	*/
	@JSONField(name="Name")
	public void setName(String Name){
		this.Name = Name;
	}
	/*
		注解在get方法表示bean轉(zhuǎn)換成json的時(shí)候會(huì)把實(shí)體類的Name屬性值賦給json的Name
	*/
	@JSONField(name="Name")
	public String getName(){
		return this.Name;
	}
}

(3)@JSONproperty這個(gè)注解用于屬性上面

如把trueName屬性序列化為name,可以在屬性名上面增加@JsonProperty(value=“name”)。

(4)jackson的@JsonIgnore使用

作用:在json序列化時(shí)將java bean中的一些屬性忽略掉,序列化和反序列化都受影響。

使用方法:一般標(biāo)記在屬性或者方法上,返回的json數(shù)據(jù)即不包含該屬性。

jsonField和jsonProperty注解的坑

遇到的問(wèn)題:

實(shí)體類中的字段一般都是首字母小寫的,但是所要傳輸?shù)膉son數(shù)據(jù)(接收的和發(fā)出去的)都要求字段的首字母大寫

public class Test{
?? ?private String Name;------>setter + getter
}
json:
{
?? ?'Name': 'test'
}

但是這樣直接接收的話是接收不到Name的取值的

所以需要使用jsonField注解和jsonProperty注解

@JSONField

這個(gè)注解分別可以注解在實(shí)體類的屬性、setter和getter方法上

public class Test{?? ?
?? ?/*
?? ??? ?注解在屬性上的時(shí)候可以設(shè)置一些序列化、格式化的屬性
?? ??? ?@JSONField(serialize = false)---->序列化的時(shí)候忽略這個(gè)屬性
?? ??? ?@JSONField(format = "yyyyMMdd")---->序列化和反序列化額時(shí)候使用yyyyMMdd,一般在Date類型的字段上使用
?? ?*/?? ?
?? ?@JSONField(serialize = false)
?? ?public String Name;
?? ?/*
?? ??? ?注解在set方法表示json轉(zhuǎn)成bean的時(shí)候會(huì)將json中的Name屬性賦值給實(shí)體類的Name
?? ?*/
?? ?@JSONField(name="Name")
?? ?public void setName(String Name){
?? ??? ?this.Name = Name;
?? ?}
?? ?/*
?? ??? ?注解在get方法表示bean轉(zhuǎn)換成json的時(shí)候會(huì)把實(shí)體類的Name屬性值賦給json的Name
?? ?*/
?? ?@JSONField(name="Name")
?? ?public String getName(){
?? ??? ?return this.Name;
?? ?}
}

@JSONProperty

( 1 ) 此注解用于屬性上,作用是把該屬性的名稱序列化為另外一個(gè)名稱,

( 2 ) 如把trueName屬性序列化為name,@JsonProperty(value=“name”)

( 3 ) 類似@JSONField注解注在setter方法上

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot+Nginx實(shí)現(xiàn)大文件下載功能

    Spring Boot+Nginx實(shí)現(xiàn)大文件下載功能

    相信很多小伙伴,在日常開(kāi)放中都會(huì)遇到大文件下載的情況,大文件下載方式也有很多,比如非常流行的分片下載、斷點(diǎn)下載;當(dāng)然也可以結(jié)合Nginx來(lái)實(shí)現(xiàn)大文件下載,在中小項(xiàng)目非常適合使用,這篇文章主要介紹了Spring Boot結(jié)合Nginx實(shí)現(xiàn)大文件下載,需要的朋友可以參考下
    2024-05-05
  • java線程Thread.sleep()對(duì)比對(duì)象的wait示例解析

    java線程Thread.sleep()對(duì)比對(duì)象的wait示例解析

    這篇文章主要為大家介紹了java線程Thread.sleep()對(duì)比對(duì)象的wait示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Springboot項(xiàng)目如何使用apollo配置中心

    Springboot項(xiàng)目如何使用apollo配置中心

    這篇文章主要介紹了Springboot項(xiàng)目如何使用apollo配置中心,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • springboot自動(dòng)掃描添加的BeanDefinition源碼實(shí)例詳解

    springboot自動(dòng)掃描添加的BeanDefinition源碼實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于springboot自動(dòng)掃描添加的BeanDefinition的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • netty?pipeline中的inbound和outbound事件傳播分析

    netty?pipeline中的inbound和outbound事件傳播分析

    這篇文章主要為大家介紹了netty?pipeline中的inbound和outbound事件傳播分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Java CountDownLatch計(jì)數(shù)器與CyclicBarrier循環(huán)屏障

    Java CountDownLatch計(jì)數(shù)器與CyclicBarrier循環(huán)屏障

    CountDownLatch是一種同步輔助,允許一個(gè)或多個(gè)線程等待其他線程中正在執(zhí)行的操作的ASET完成。它允許一組線程同時(shí)等待到達(dá)一個(gè)共同的障礙點(diǎn)
    2023-04-04
  • JAVA實(shí)現(xiàn)空間索引編碼——GeoHash的示例

    JAVA實(shí)現(xiàn)空間索引編碼——GeoHash的示例

    本篇文章主要介紹了JAVA實(shí)現(xiàn)空間索引編碼——GeoHash的示例,如何從眾多的位置信息中查找到離自己最近的位置,有興趣的朋友可以了解一下
    2016-10-10
  • Spring?MVC DispatcherServlet處理請(qǐng)求過(guò)程示例詳解

    Spring?MVC DispatcherServlet處理請(qǐng)求過(guò)程示例詳解

    這篇文章主要介紹了Spring?MVC?DispatcherServlet處理請(qǐng)求過(guò)程示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 詳解Eclipse提交項(xiàng)目到GitHub以及解決代碼沖突

    詳解Eclipse提交項(xiàng)目到GitHub以及解決代碼沖突

    這篇文章主要介紹了詳解Eclipse提交項(xiàng)目到GitHub以及解決代碼沖突,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03
  • springboot項(xiàng)目如何設(shè)置session的過(guò)期時(shí)間

    springboot項(xiàng)目如何設(shè)置session的過(guò)期時(shí)間

    這篇文章主要介紹了springboot項(xiàng)目如何設(shè)置session的過(guò)期時(shí)間,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評(píng)論