解決springboot中自定義JavaBean返回的json對象屬性名稱大寫變小寫問題
springboot中自定義JavaBean返回的json對象屬性名稱大寫變小寫問題
開發(fā)過程中發(fā)現(xiàn)查詢返回的數(shù)據(jù)出現(xiàn)自定義的JavaBean的屬性值大小寫格式出現(xiàn)問題,導(dǎo)致前端無法接受到數(shù)據(jù),目前有四種解決方法,根據(jù)大佬的經(jīng)驗之談,前兩種是最簡單便捷的,后兩種是比較通用的方法。
具體原因如下圖:

一、繼承類
一般在vo層(可自行理解,阿里巴巴的編程規(guī)范)自定義JavaBean來封裝數(shù)據(jù)返回給前端,都是需要用到多表查詢,或者有額外的屬性增加時需要創(chuàng)建。
例如:人的javaBean最好的方式是繼承一個學(xué)生的javaBean在添加新的屬性,這樣再人的JavaBean中沒有問題,學(xué)生的JavaBean返回的數(shù)據(jù)也是正常的,不會出現(xiàn)因為@Data注解導(dǎo)致的bug。
二、手動添加Get方法
這有可能是由于Lombok中的@Data注解導(dǎo)致的bug,手動添加get和set方法也可以解決該問題。(嘗試了返回的格式是正常的)
三、@JsonProperty
其它博主的解決方案:字段屬性加上注解@JsonProperty("aAnimalId")指定序列化后的名稱,字段屬性的get方法加上注解@JsonIgnore。

本人嘗試的結(jié)果:在字段屬性加上注解@JsonProperty("aAnimalId"),接口返回數(shù)據(jù)的key就恢復(fù)正常了,或許是我和@Data混用的原因。但是分析了一下發(fā)現(xiàn)結(jié)果如下:

結(jié)果分析:
把首字母變成大小,從而和springboot返回json對象把字母變成小寫相互抵消,從而導(dǎo)致可以返回正常的格式(自我理解,不確定對不對),但問題de到解決。各位可以嘗試嘗試,能解決開發(fā)問題的就是好辦法。
四、spring-boot json(jackson)屬性命名策略
全局配置命名策略,未嘗試,大佬叫我了解了解,會有一定的收獲。
spring: jackson: property-naming-strategy: SNAKE_CASE
以上就是解決springboot中自定義JavaBean返回的json對象屬性名稱大寫變小寫問題的詳細內(nèi)容,更多關(guān)于springboot json對象屬性名稱大寫變小寫的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot集成Redis并調(diào)用Lua腳本的示例詳解
Redis 是一個高性能的內(nèi)存數(shù)據(jù)庫,廣泛用于緩存、計數(shù)器、分布式鎖等場景,本文主要和大家詳細介紹了SpringBoot如何集成Redis并調(diào)用Lua腳本,需要的小伙伴可以了解下2025-07-07
一篇文章教你將JAVA的RabbitMQz與SpringBoot整合
這篇文章主要介紹了如何將JAVA的RabbitMQz與SpringBoot整合,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2021-09-09
Java實現(xiàn)OTP(動態(tài)口令)服務(wù)
OTP是一種動態(tài)生成的短時有效密碼,用于身份驗證,通常在登錄或執(zhí)行敏感操作時提供額外的安全保障,本文主要介紹了Java實現(xiàn)OTP(動態(tài)口令)服務(wù),感興趣的可以了解一下2025-03-03

