解決javaBean規(guī)范導(dǎo)致json傳參首字母大寫將永遠(yuǎn)獲取不到問題
javaBean規(guī)范導(dǎo)致json傳參首字母大寫獲取不到
規(guī)范中另一個(gè)特別的地方就是:
1.第二個(gè)字母為大寫的屬性名要區(qū)別對(duì)待
如果屬性名的第二個(gè)字母是大寫的,那么該屬性名直接用作 getter/setter 方法中 get/set 的后部分,就是說大小寫不變。
2.屬性是首字母大寫
次字母小寫是,你永遠(yuǎn)都找不到它的 getter/setter 方法的。
3.對(duì)于 boolean 類型屬性的 getter 方法
是 isXxx() 還是 getXxx() 就自己決定了,isXxx() 應(yīng)該更接近于自然語(yǔ)言,更順溜些。
一般JavaBean屬性以小寫字母開頭,駝峰命名格式,相應(yīng)的 getter/setter 方法是 get/set 接上首字母大寫的屬性名。例如:屬性名為userName,其對(duì)應(yīng)的getter/setter 方法是 getUserName/setUserName。
但是,還有一些特殊情況:
1、如果屬性名的第二個(gè)字母大寫
那么該屬性名直接用作 getter/setter 方法中 get/set 的后部分,就是說大小寫不變。例如屬性名為uName,方法是getuName/setuName。
2、如果屬性名的前兩個(gè)字母是大寫
(一般的專有名詞和縮略詞都會(huì)大寫),也是屬性名直接用作 getter/setter 方法中 get/set 的后部分。例如屬性名為URL,方法是getURL/setURL。
3、如果屬性名的首字母大寫
也是屬性名直接用作 getter/setter 方法中 get/set 的后部分。例如屬性名為Name,方法是getName/setName,這種是最糟糕的情況,會(huì)找不到屬性出錯(cuò),因?yàn)槟J(rèn)的屬性名是name。
4、如果屬性名以"is"開頭
則getter方法會(huì)省掉get,set方法會(huì)去掉is。例如屬性名為isOK,方法是isOK/setOK。
需要注意的是有些開發(fā)工具自動(dòng)生成的getter/setter方法,并沒有考慮到上面所說的特例情況,會(huì)導(dǎo)致bug的產(chǎn)生。
我們?cè)诙xJavaBean的屬性名時(shí),應(yīng)該盡量避免屬性名的頭兩個(gè)字母中任意一個(gè)為大寫以及屬性名以"is"開頭。
javaBean變量第一二個(gè)字母大寫取不到值
跟別公司對(duì)接接口,他們傳過來的參數(shù)居然首字母是大寫,然后說他們改的話影響太大了,很多地方都要改,就只能麻煩我們改了,于是乎,F(xiàn)IdNumber這個(gè)參數(shù)跟我周旋了半天,首字母和第二個(gè)字母都大寫的話是沒問題的,可是我就是死活取不到值,查了很多資料,都是講java規(guī)范的;沒啥用,皇天不負(fù)有心人,最后終于讓我找到了,是spring的鍋,加上@JsonProperty注解就OK了
@JsonProperty(value = "FIdNumber") private String fIdNumber;
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?Boot存在路徑遍歷漏洞CVE-2021-22118的問題解析
CVE-2021-22118?是一個(gè)在?Spring?Boot?中發(fā)現(xiàn)的漏洞,該漏洞關(guān)系到?Spring?Boot?的開發(fā)者工具(Devtools)中的遠(yuǎn)程更新(Remote?Update)功能,這篇文章主要介紹了Spring?Boot存在路徑遍歷漏洞CVE-2021-22118,需要的朋友可以參考下2023-09-09
Spring工廠方法創(chuàng)建(實(shí)例化)bean實(shí)例代碼
這篇文章主要介紹了Spring工廠方法創(chuàng)建bean實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
Java報(bào)錯(cuò):ClassCastException問題解決方法
異常是程序中的一些錯(cuò)誤,但并不是所有的錯(cuò)誤都是異常,并且錯(cuò)誤有時(shí)候是可以避免的,下面這篇文章主要給大家介紹了關(guān)于Java報(bào)錯(cuò):ClassCastException問題解決方法,需要的朋友可以參考下2024-07-07
java Map轉(zhuǎn)Object與Object轉(zhuǎn)Map實(shí)現(xiàn)代碼
這篇文章主要介紹了 java Map轉(zhuǎn)Object與Object轉(zhuǎn)Map實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02
Java基礎(chǔ)之并發(fā)相關(guān)知識(shí)總結(jié)
隨著摩爾定律逐步失效,cpu單核性能達(dá)到瓶頸,并發(fā)逐漸逐漸得到廣泛應(yīng)用,因而學(xué)習(xí)了解以及使用并發(fā)就顯得十分重要,但并發(fā)相關(guān)的知識(shí)比較瑣碎,不易系統(tǒng)學(xué)習(xí),因而本篇文章參照王寶令老師《Java并發(fā)編程》來勾勒出一張“并發(fā)全景圖”,需要的朋友可以參考下2021-05-05
springboot?@Async?注解如何實(shí)現(xiàn)方法異步
這篇文章主要介紹了springboot?@Async?注解如何實(shí)現(xiàn)方法異步,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
使用StringRedisTemplate操作Redis方法詳解
這篇文章主要為大家介紹了使用StringRedisTemplate操作Redis方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Java實(shí)現(xiàn)樹形菜單的方法總結(jié)
當(dāng)我們想要展示層級(jí)結(jié)構(gòu),如文件目錄、組織結(jié)構(gòu)或分類目錄時(shí),樹形菜單是一個(gè)直觀且有效的解決方案,本文為大家整理了java中幾種常見方法,希望對(duì)大家有所幫助2023-08-08

