遇見了這個情況,我的字段定義是xVal,yVal,用的lombok的@Data注解。
然后查詢到了下面這偏文章,https://bbs.csdn.net/topics/392305619,里面的回答是圖片,我只是翻譯一下圖片而已。
以下是引用的原文:
jackson2對pojo類型序列化的處理。
Jackson2在初始化序列器時,對pojo類型對象會收集其屬性信息,屬性包括成員變量及方法,然后屬性名稱和處理過后的方法名稱做為key保存到一個LinkedHashMap中。收集過程中會調(diào)用com.fasterxml.jackson.databind.util.BeanUtil中的legacyManglePropertyName方法用來處理方法名稱,它會將get/set方法前綴,即get或set去掉,并將其后面的連續(xù)大寫字符轉(zhuǎn)換成小寫字符返回。例如: getNEWString會轉(zhuǎn)變成newstring返回。你的屬性名稱如果有這樣的"nSmallSellCount",lombok自動生成的get方法就會是這樣的"getNSmallSellCount",處理過后就是這樣的"nsmallSellCount",這與屬性nSmallSellCount并不沖突,可以同時存在于HashMap中。收集完屬性信息后,下面的步驟中會刪除掉非可見的屬性,一般指的是私有成員變量,這時,名稱為"nSmallSellCount"的成員變量屬性會被刪除掉,這樣的序列化結(jié)果是不會有問題的,但,如果加了@JsonProperty注釋,Jackson2會認為這個屬性是可見的,不必會刪除,這時這兩個表示同一個值得屬性就會被一同序列化。
翻譯完畢,好累。。。。
總結(jié)一下知識點:
1.jackson默認序列化時只去get set方法的字段,私有字段是不參與序列化的
2.@JsonProperty 注解在私有屬性上,標(biāo)明該私有字段在序列化時可見,另外可以指定序列化的名稱。
3.@JsonProperty 如果標(biāo)注在get set方法上就不會有問題4.項目中使用了lombok的@Data注解,所以只能標(biāo)注在屬性上,這就導(dǎo)致了出問題。
br/>4.項目中使用了lombok的@Data注解,所以只能標(biāo)注在屬性上,這就導(dǎo)致了出問題。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
新聞標(biāo)題:用jackson的@JsonProperty注解屬性名,會多出一個字段-創(chuàng)新互聯(lián)
文章URL:http://jinyejixie.com/article32/dipspc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、營銷型網(wǎng)站建設(shè)、App設(shè)計、品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容