前言
在寫后端的c層返回字段斷言的時(shí)候,進(jìn)行對(duì)于user對(duì)象的isAdmin字段斷言。相關(guān)實(shí)體類字段如下
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/** * 是否是超級(jí)管理員 */ private Boolean isAdmin = false ; public Boolean getAdmin() { return isAdmin; } public void setAdmin(Boolean admin) { isAdmin = admin; } |
當(dāng)我斷言時(shí),我斷言isAdmin字段存在
但是他報(bào)錯(cuò)說不存在$.isAdmin。
解決方法是打印一下相關(guān)數(shù)據(jù),看見返回值為“admin”: true,我們將isAdmin改成admin,運(yùn)行通過。但是為什么是admin而不是isAdmin呢?在我過去的認(rèn)知里,json字符串的鍵值一直跟對(duì)象的屬性名稱相同,但是這里卻出現(xiàn)了不一樣。看來我的理解錯(cuò)了。
詢問老師后得知,對(duì)象轉(zhuǎn)變成json字符串的鍵值是根據(jù)屬性對(duì)應(yīng)的get方法生成的。
比如我們?cè)谶@里的isAdmin對(duì)應(yīng)的get方法
1
2
3
|
public Boolean getAdmin() { return isAdmin; } |
具體變化為得到相應(yīng)的get方法的方法名,像上面的就是getAdmin。然后去掉get,再將首字母變?yōu)樾憽_@就是為什么是鍵值是admin而不是isAdmin了。
我們將get方法名改為getIsAdmin,此時(shí)我們就應(yīng)該斷言isAdmin字段存在了。
實(shí)體類的get、set方法
為什么isAdmin字段要寫成getAdmin方法名而不是getIsAdmin方法名。
當(dāng)我們寫實(shí)體類時(shí),IDEA可以幫助我們自動(dòng)生成getter/setter方法。
鼠標(biāo)右鍵->Generate->Getter and Setter,然后選取想要生成的對(duì)應(yīng)屬性即可。
我們發(fā)現(xiàn)一個(gè)問題,我們寫一個(gè)Boolean類型的admin屬性與Boolean類型的isAdmin屬性生成的是相同方法名稱的getter/setter方法。也就是getAdmin方法名。
究其原因。看網(wǎng)上有說阿里是禁止Boolean類型的字段已is打頭的,也有人說不推薦這種寫法。具體可以看這篇文章:阿里規(guī)范:為什么boolean類型變量命名禁用is開頭
總結(jié)
到此這篇關(guān)于后端將數(shù)據(jù)轉(zhuǎn)化為json字符串傳輸?shù)奈恼戮徒榻B到這了,更多相關(guān)后端將數(shù)據(jù)轉(zhuǎn)化為json字符串傳輸內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://segmentfault.com/a/1190000023818342