@RequestBody為JavaBean對象注入字段值為空的解決辦法


在做一個項目時用到@RequestBody注解為請求信息做封裝處理,發現對象中一個字段QQ(文檔中請求json串的這個字段名首字母是大寫的,風格迥異)被注入為null,沒找到什么原因導致的。

后來上網查閱了相關資料,拍腦袋一想,對啊。。。spring框架在對對象進行處理的時候還是要拿我們的get/set方法,我們把對象的字段名首字母搞成大寫,這讓spring在處理的時候到底是為QQ還是qQ這個字段賦值?(spring:我看你就是在刁難我),spring沒辦法就只能按照傳統命名規則,所以字段名首字母為大寫的就沒法正常注入值了。

那么總得來看,造成注入為null的原因有兩個:

1.JavaBean字段名和Json串字段名不一致

2.JavaBean字段名和Json串字段名一致,但首字母大寫。

其中第二種情況,也提醒了我們在平時開發中,有些東西就比如這個命名規則還是要按照約定成俗來最好。

但是,文檔是那樣寫的,怎么處理這種情況?實際上spring早已考慮到這種情況,我們只需要用@JsonProperty(value=”QQ”);注解在字段上即可,這樣就可以為某些字段賦予例外情況了,或者說你的JavaBean的所有字段名都沒跟請求過來的json串吻合,就用這個注解吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM