SpringBoot 返回Json實體類屬性大小寫的解決
返回Json實體類屬性大小寫問題
總歸上述問題Rt,其實今天開發(fā)剛遇到,當時找了半天為啥前臺傳參后臺卻接收不到,原來是返回的時候返回小寫,但是前臺依舊大寫傳參。
查了很多后發(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轉換大小寫的坑
最近搞了一個Springboot+mybatis的框架,往前端進行Json格式轉換的時候,發(fā)現(xiàn)屬性的大寫首字母變小寫了,這極大的不方便前后一致性,如是網上一堆亂搜,測試了N多情況,算是把問題解決了,不過坑大,記錄如下:
1) 如果沒有使用fastjson(阿里巴巴出品),使用@JsonProperty("XXXX")的注解方式可以解決問題,XXXX就是轉換成Json的屬性名,但注意,只有放在getter上才是有效的,直接在屬性上加沒效果.(這說明spring 默認的jackson類庫處理是基于訪問器。
2)如果使用了fastjson,就用@JSONField(name="XXXXX")注解方式進行,這個可以放在屬性上。不過放在getter,setter上更好。
3)如果同時有兩個存在,一般都是fastjson起效果,不過具體情況可以試下,我遇到的就是fastjson起效。當然要強制失效fastjson,就需要在Application類上加注解:@EnableWebMvc.
總結,初次為大規(guī)模做Java項目,開發(fā)底層框架,感覺Java的很多框架開發(fā)者有點死腦筋,命名規(guī)范這玩意就是個規(guī)范,你做框架底層沒必要越廚代庖,強制采用這些規(guī)范。做底層的東西就要把自由度留給使用人員,別人才好在此基礎上擴展。雖然可以通過一些注解什么的解決問題,但浪費很多時間。
整體上來說,無論是Java的一些框架還是語法本身都跟C#不在一個自由度上,很多時候都是做些沒有什么技術含量的東西。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
MyBatis的collection和association的使用解讀
這篇文章主要介紹了MyBatis的collection和association的使用解讀2023-12-12深入淺析Random類在高并發(fā)下的缺陷及JUC對其的優(yōu)化
這篇文章主要介紹了Random類在高并發(fā)下的缺陷及JUC對其的優(yōu)化 ,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04SpringCloud開啟session共享并存儲到Redis的實現(xiàn)
這篇文章主要介紹了SpringCloud開啟session共享并存儲到Redis的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02springboot程序啟動慢-未配置hostname的解決
這篇文章主要介紹了springboot程序啟動慢-未配置hostname的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08MyBatis將查詢出的兩列數(shù)據(jù)裝配成鍵值對的操作方法
這篇文章主要介紹了MyBatis將查詢出的兩列數(shù)據(jù)裝配成鍵值對的操作代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08JAVA Netty實現(xiàn)聊天室+私聊功能的示例代碼
這篇文章主要介紹了JAVA Netty實現(xiàn)聊天室+私聊功能的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08Java 線程對比(Thread,Runnable,Callable)實例詳解
這篇文章主要介紹了Java 線程(Thread,Runnable,Callable)實例詳解的相關資料,這里對java 線程的三種方法進行了對比,需要的朋友可以參考下2016-12-12