Springboot一個(gè)注解搞定返回參數(shù)key轉(zhuǎn)換功能
前言
平時(shí)在搬磚的時(shí)候,大家有沒(méi)有遇到過(guò)這樣的一個(gè)場(chǎng)景,由于各種不可描述因素導(dǎo)致,
一個(gè)接口返回的數(shù)據(jù) 里面的 key 是 A , 但是客戶端(前端) 要求返回的key 不叫 A 叫 Aa 。
也就是返回的值不變,就是key 換了。
例如 :
正文
那么需要怎么做的 ?
① 新寫(xiě)一個(gè)類,用于值的返回,拿到值,把屬性 get set 一下。
② 也就是本篇文章想提到的 ,使用注解, @JsonProperty
這個(gè)很多人都知道, 繞半天原來(lái)是 炒冷飯 ? 且慢。
② 這種方式,其實(shí)是一種入侵時(shí)調(diào)整, 前提是你有權(quán)限能夠改到 原來(lái)的 類的 屬性的代碼 。
但是也有情況是,這個(gè)返回的類,你用的是別人的jar引入的, 那就沒(méi)辦法直接改人家代碼。
這時(shí)候,大多數(shù)的人可能也就只有使用 ① 情況了。
其實(shí)不然。
③ 也是這篇想提到的 ,非入侵式的 轉(zhuǎn)換返回?cái)?shù)據(jù)的key, 同樣也是通過(guò)注解方式實(shí)現(xiàn), 也就是 @JsonMixin + @JsonProperty
ps : springboot 2.7版本以上 支持 @JsonMixin
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.2</version> <relativePath/> </parent>
實(shí)操示例:
寫(xiě)個(gè)模擬的調(diào)用接口,拿到返回?cái)?shù)據(jù) Student:
@GetMapping("/queryById") public Student queryById( Integer id){ Student student=new Student(); student.setId(id); student.setName("JCccc"); student.setAge(20); student.setMobile("136XXXXXXXX"); return student; }
可以看到返回值:
先看 入侵式的, 也就是在原來(lái)的返回?cái)?shù)據(jù)的類上面去使用 @JsonProperty :
@JsonProperty
可以看到返回值:
再看非入侵式的, 創(chuàng)建一個(gè) 抽象類 PhoneKeyConvert , 可以指定單個(gè)或多個(gè)類, 在返回?cái)?shù)據(jù)的時(shí)候,自動(dòng)轉(zhuǎn)換key:
@JsonMixin + @JsonProperty
可以看下返回結(jié)果 :
OK,該篇就到這。
合適的業(yè)務(wù)場(chǎng)景,合適的技術(shù)方案。
到此這篇關(guān)于Springboot一個(gè)注解搞定返回參數(shù)key轉(zhuǎn)換功能的文章就介紹到這了,更多相關(guān)Springboot參數(shù)key轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot使用Spring-Data-Jpa實(shí)現(xiàn)CRUD操作
這篇文章主要為大家詳細(xì)介紹了SpringBoot使用Spring-Data-Jpa實(shí)現(xiàn)CRUD操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08Java實(shí)現(xiàn)將導(dǎo)出帶格式的Excel數(shù)據(jù)到Word表格
在Word中制作報(bào)表時(shí),我們經(jīng)常需要將Excel中的數(shù)據(jù)復(fù)制粘貼到Word中,這樣則可以直接在Word文檔中查看數(shù)據(jù)而無(wú)需打開(kāi)另一個(gè)Excel文件。本文將通過(guò)Java應(yīng)用程序詳細(xì)介紹如何把帶格式的Excel數(shù)據(jù)導(dǎo)入Word表格。希望這篇文章能對(duì)大家有所幫助2022-11-11Springboot整合logback多節(jié)點(diǎn)日志文件加端口號(hào)區(qū)分的操作方法
這篇文章主要介紹了Springboot整合logback多節(jié)點(diǎn)日志文件加端口號(hào)區(qū)分的操作方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09Java 判斷實(shí)體對(duì)象及所有屬性是否為空的操作
這篇文章主要介紹了Java 判斷實(shí)體對(duì)象及所有屬性是否為空的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12關(guān)于Mybatis的mapper接口函數(shù)重載問(wèn)題
這篇文章主要介紹了關(guān)于Mybatis的mapper接口函數(shù)重載問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02簡(jiǎn)單了解SpringCloud運(yùn)行原理
這篇文章主要介紹了簡(jiǎn)單了解SpringCloud運(yùn)行原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11詳解SpringBoot獲得Maven-pom中版本號(hào)和編譯時(shí)間戳
這篇文章主要介紹了詳解SpringBoot獲得Maven-pom中版本號(hào)和編譯時(shí)間戳,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01