SpringBoot 返回Json實體類屬性大小寫的解決
返回Json實體類屬性大小寫問題
總歸上述問題Rt,其實今天開發(fā)剛遇到,當(dāng)時找了半天為啥前臺傳參后臺卻接收不到,原來是返回的時候返回小寫,但是前臺依舊大寫傳參。
查了很多后發(fā)現(xiàn)其實是json返回的時候把首字母變小寫了,也就是Spring Boot中Jackson的功勞
百度后得@JsonProperty注解完美解決。但與此同時會出現(xiàn)兩個問題
如果注解放到屬性上,則返回的時候既有大寫也有小寫,
@JsonProperty("Ao")
private Integer Ao;
Result:{Ao:xxx,ao:xxx}
所以注解放在getter上完美解決,返回只有大寫不再自動變?yōu)樾懙膯栴}。
@JsonProperty("Ao")
public Integer getAo() {
return Ao;
}
Result:{Ao:xxx}
Json轉(zhuǎn)換大小寫的坑
最近搞了一個Springboot+mybatis的框架,往前端進(jìn)行Json格式轉(zhuǎn)換的時候,發(fā)現(xiàn)屬性的大寫首字母變小寫了,這極大的不方便前后一致性,如是網(wǎng)上一堆亂搜,測試了N多情況,算是把問題解決了,不過坑大,記錄如下:
1) 如果沒有使用fastjson(阿里巴巴出品),使用@JsonProperty("XXXX")的注解方式可以解決問題,XXXX就是轉(zhuǎn)換成Json的屬性名,但注意,只有放在getter上才是有效的,直接在屬性上加沒效果.(這說明spring 默認(rèn)的jackson類庫處理是基于訪問器。
2)如果使用了fastjson,就用@JSONField(name="XXXXX")注解方式進(jìn)行,這個可以放在屬性上。不過放在getter,setter上更好。
3)如果同時有兩個存在,一般都是fastjson起效果,不過具體情況可以試下,我遇到的就是fastjson起效。當(dāng)然要強制失效fastjson,就需要在Application類上加注解:@EnableWebMvc.
總結(jié),初次為大規(guī)模做Java項目,開發(fā)底層框架,感覺Java的很多框架開發(fā)者有點死腦筋,命名規(guī)范這玩意就是個規(guī)范,你做框架底層沒必要越廚代庖,強制采用這些規(guī)范。做底層的東西就要把自由度留給使用人員,別人才好在此基礎(chǔ)上擴展。雖然可以通過一些注解什么的解決問題,但浪費很多時間。
整體上來說,無論是Java的一些框架還是語法本身都跟C#不在一個自由度上,很多時候都是做些沒有什么技術(shù)含量的東西。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot?+mybatis?使用PageHelper實現(xiàn)分頁并帶條件模糊查詢功能
這篇文章主要介紹了springboot?+mybatis?使用PageHelper實現(xiàn)分頁并帶條件模糊查詢功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02
springboot+mybatis通過實體類自動生成數(shù)據(jù)庫表的方法
這篇文章主要介紹了springboot+mybatis通過實體類自動生成數(shù)據(jù)庫表的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
通過Mybatis實現(xiàn)單表內(nèi)一對多的數(shù)據(jù)展示示例代碼
最近做項目遇到這樣的需求要求將表中的數(shù)據(jù),按照一級二級分類返回給前端json數(shù)據(jù),下面通過本文給大家分享通過Mybatis實現(xiàn)單表內(nèi)一對多的數(shù)據(jù)展示示例代碼,感興趣的朋友參考下吧2017-08-08
java高效打印一個二維數(shù)組的實例(不用遞歸,不用兩個for循環(huán))
下面小編就為大家?guī)硪黄猨ava高效打印一個二維數(shù)組的實例(不用遞歸,不用兩個for循環(huán))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03
springboot實現(xiàn)公眾號接收回復(fù)消息和超過5秒被動回復(fù)消息
本文主要介紹了springboot實現(xiàn)公眾號接收回復(fù)消息和超過5秒被動回復(fù)消息,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
springboot使用redis緩存亂碼(key或者value亂碼)的解決
在通過springboot緩存數(shù)據(jù)的時候,發(fā)現(xiàn)key是一堆很不友好的東西,本文主要介紹了springboot使用redis緩存亂碼(key或者value亂碼)的解決,感興趣的可以了解一下2023-11-11

