解決springboot中自定義JavaBean返回的json對(duì)象屬性名稱大寫變小寫問題
springboot中自定義JavaBean返回的json對(duì)象屬性名稱大寫變小寫問題
開發(fā)過程中發(fā)現(xiàn)查詢返回的數(shù)據(jù)出現(xiàn)自定義的JavaBean的屬性值大小寫格式出現(xiàn)問題,導(dǎo)致前端無法接受到數(shù)據(jù),目前有四種解決方法,根據(jù)大佬的經(jīng)驗(yàn)之談,前兩種是最簡(jiǎn)單便捷的,后兩種是比較通用的方法。
具體原因如下圖:
一、繼承類
一般在vo
層(可自行理解,阿里巴巴的編程規(guī)范)自定義JavaBean來封裝數(shù)據(jù)返回給前端,都是需要用到多表查詢,或者有額外的屬性增加時(shí)需要?jiǎng)?chuàng)建。
例如:人的javaBean最好的方式是繼承一個(gè)學(xué)生的javaBean在添加新的屬性,這樣再人的JavaBean中沒有問題,學(xué)生的JavaBean返回的數(shù)據(jù)也是正常的,不會(huì)出現(xiàn)因?yàn)锧Data注解導(dǎo)致的bug。
二、手動(dòng)添加Get方法
這有可能是由于Lombok中的@Data注解導(dǎo)致的bug,手動(dòng)添加get和set方法也可以解決該問題。(嘗試了返回的格式是正常的)
三、@JsonProperty
其它博主的解決方案:字段屬性加上注解@JsonProperty("aAnimalId")
指定序列化后的名稱,字段屬性的get方法
加上注解@JsonIgnore
。
本人嘗試的結(jié)果:在字段屬性加上注解@JsonProperty("aAnimalId")
,接口返回?cái)?shù)據(jù)的key就恢復(fù)正常了,或許是我和@Data混用的原因。但是分析了一下發(fā)現(xiàn)結(jié)果如下:
結(jié)果分析:
把首字母變成大小,從而和springboot返回json對(duì)象把字母變成小寫相互抵消,從而導(dǎo)致可以返回正常的格式(自我理解,不確定對(duì)不對(duì)),但問題de到解決。各位可以嘗試嘗試,能解決開發(fā)問題的就是好辦法。
四、spring-boot json(jackson)屬性命名策略
全局配置命名策略,未嘗試,大佬叫我了解了解,會(huì)有一定的收獲。
spring: jackson: property-naming-strategy: SNAKE_CASE
以上就是解決springboot中自定義JavaBean返回的json對(duì)象屬性名稱大寫變小寫問題的詳細(xì)內(nèi)容,更多關(guān)于springboot json對(duì)象屬性名稱大寫變小寫的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java后端實(shí)現(xiàn)異步編程的9種方式總結(jié)
我們?nèi)粘i_發(fā)的時(shí)候,經(jīng)常說到異步編程,比如說,在注冊(cè)接口,我們?cè)谟脩糇?cè)成功時(shí),用異步發(fā)送郵件通知用戶,那么實(shí)現(xiàn)異步編程一共有多少種方式呢,下面小編就來簡(jiǎn)單講講吧2025-03-03SpringCloud之Zuul服務(wù)網(wǎng)關(guān)詳解
這篇文章主要介紹了SpringCloud之Zuul服務(wù)網(wǎng)關(guān)詳解,服務(wù)網(wǎng)關(guān)是微服務(wù)架構(gòu)中一個(gè)不可或缺的部分,通過服務(wù)網(wǎng)關(guān)統(tǒng)一向外系統(tǒng)提供REST?API的過程中,除了具備服務(wù)路由、均衡負(fù)載功能之外,它還具備了權(quán)限控制(鑒權(quán))等功能,需要的朋友可以參考下2023-08-08springboot整合shiro多驗(yàn)證登錄功能的實(shí)現(xiàn)(賬號(hào)密碼登錄和使用手機(jī)驗(yàn)證碼登錄)
這篇文章給大家介紹springboot整合shiro多驗(yàn)證登錄功能的實(shí)現(xiàn)方法,包括賬號(hào)密碼登錄和使用手機(jī)驗(yàn)證碼登錄功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-07-07Spring框架花式創(chuàng)建Bean的n種方法(小結(jié))
這篇文章主要介紹了Spring框架花式創(chuàng)建Bean的n種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03解決springboot的aop切面不起作用問題(失效的排查)
這篇文章主要介紹了解決springboot的aop切面不起作用問題(失效的排查),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。 一起跟隨小編過來看看吧2020-04-04Java實(shí)戰(zhàn)之圖書管理系統(tǒng)的實(shí)現(xiàn)
這篇文章主要介紹了如何利用Java語言編寫一個(gè)圖書管理系統(tǒng),文中采用的技術(shù)有Springboot、SpringMVC、MyBatis、ThymeLeaf 等,需要的可以參考一下2022-03-03