Springboot?接口需要接收參數(shù)類型是數(shù)組問題
接口需要接收參數(shù)類型是數(shù)組
如題,一般我們普遍采用的協(xié)調(diào)方式:
多個(gè)參以“,”拼接傳遞即可
如:
那么除了這樣,我們還能怎么協(xié)調(diào)呢?
其實(shí)對(duì)應(yīng)get請(qǐng)求,springmvc內(nèi)部是已經(jīng)支持了這種以“,”逗號(hào)拼接的方式,也就是說,傳參方式不變,但是我們后臺(tái)接收的時(shí)候,可以不用那么繁瑣以逗號(hào)切割,可以這樣:
對(duì)post請(qǐng)求除了可以要求傳參以“,”逗號(hào)拼接,我們接口接到參后再切割,還可以直接要求對(duì)方傳數(shù)組,我們用實(shí)體類接收,
如:
也可以使用Map來接收 :
好了就到此,為什么要發(fā)這個(gè)文章,因?yàn)榻裉旃居谢锇樵趯?duì)數(shù)組參數(shù)的傳遞接收發(fā)問,我覺得有必要給一些伙伴普及一下這些普遍的處理協(xié)調(diào)參數(shù)為數(shù)組類型的接口方式。
springboot接口接收數(shù)組及多個(gè)參數(shù)問題
本例為個(gè)人經(jīng)歷,必然存在認(rèn)知局限與不足,歡迎指正以及提供更好方法。
若接口中需要接受數(shù)組,那接口應(yīng)該如何寫呢?
一般而言我們會(huì)想到
@PostMapping("/xxxx") public String test(List list){ do sth; }
假設(shè)我們寫的接口正確,寫完接口我希望使用postman來測(cè)試一下
params中似乎無法傳數(shù)組呀
在body中用json格式傳參數(shù)不就好了嗎!
于是,修改接口
@PostMapping("/xxxx") public String test(@RequestBody List list){ do sth; }
問題解決~
但是往往我們寫接口的時(shí)候需要接收的參數(shù)不止簡(jiǎn)單數(shù)組,有可能是一個(gè)非常復(fù)雜的對(duì)象。
這里我們將問題假設(shè)為需要接收的參數(shù)為對(duì)象+數(shù)組,如下。
{ "abroad": { "id":5, "studentId":1, "projectName":"哈佛訪學(xué)" }, "params": ["id","studentId","projectName"] }
自然地,我們一般會(huì)這么想:
@PostMapping("/xxxx") public String test(@RequestBody Abroad abroad,@RequestBody List<String> params){ do sth; }
但是這是錯(cuò)的!!
如果使用@RequestBody,只允許有一個(gè)參數(shù)。那希望上傳多個(gè)對(duì)象怎么辦呢?對(duì)!就是包個(gè)對(duì)象?。☆愃葡旅孢@樣:
@PostMapping("/xxxx") public String test(@RequestBody ParaDTO paraDTO){ do sth; } class ParaDTO{ Abroad abroad; List<String> params; }
解決~
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot在接收參數(shù)的七種方式詳解
- SpringBoot Controller接收參數(shù)的幾種常用方式
- SpringBoot在Controller層接收參數(shù)的n種姿勢(shì)(超詳細(xì))
- SpringBoot開發(fā)詳解之Controller接收參數(shù)及參數(shù)校驗(yàn)
- SpringBoot實(shí)現(xiàn)前后端、json數(shù)據(jù)交互以及Controller接收參數(shù)的幾種常用方式
- 詳解SpringBoot Controller接收參數(shù)的幾種常用方式
- SpringBoot中Get請(qǐng)求和POST請(qǐng)求接收參數(shù)示例詳解
相關(guān)文章
SpringEvents與異步事件驅(qū)動(dòng)案例詳解
本文深入探討了SpringBoot中的事件驅(qū)動(dòng)架構(gòu),特別是通過Spring事件機(jī)制實(shí)現(xiàn)組件解耦和系統(tǒng)擴(kuò)展性增強(qiáng),介紹了事件的發(fā)布者、事件本身、事件監(jiān)聽器和事件處理器的概念,感興趣的朋友跟隨小編一起看看吧2024-09-09SpringCloud之Zuul網(wǎng)關(guān)原理及其配置講解
這篇文章主要介紹了SpringCloud之Zuul網(wǎng)關(guān)原理及其配置講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03Springboot項(xiàng)目啟動(dòng)到一半卡住了,不報(bào)錯(cuò)問題及解決
這篇文章主要介紹了Springboot項(xiàng)目啟動(dòng)到一半卡住了,不報(bào)錯(cuò)問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06關(guān)于SpringCloud中Ribbon的7種負(fù)載均衡策略解析
這篇文章主要介紹了關(guān)于SpringCloud中Ribbon的7種負(fù)載均衡策略解析,服務(wù)端負(fù)載均衡器的問題是,它提供了更強(qiáng)的流量控制權(quán),但無法滿足不同的消費(fèi)者希望使用不同負(fù)載均衡策略的需求,而使用不同負(fù)載均衡策略的場(chǎng)景確實(shí)是存在的,需要的朋友可以參考下2023-07-07java-servlet-轉(zhuǎn)發(fā)AND路徑(詳解)
下面小編就為大家?guī)硪黄猨ava-servlet-轉(zhuǎn)發(fā)AND路徑(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10SpringAOP中基于注解實(shí)現(xiàn)通用日志打印方法詳解
這篇文章主要介紹了SpringAOP中基于注解實(shí)現(xiàn)通用日志打印方法詳解,在日常開發(fā)中,項(xiàng)目里日志是必不可少的,一般有業(yè)務(wù)日志,數(shù)據(jù)庫日志,異常日志等,主要用于幫助程序猿后期排查一些生產(chǎn)中的bug,需要的朋友可以參考下2023-12-12帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之無權(quán)無向圖
這篇文章主要為大家介紹了Java數(shù)據(jù)結(jié)構(gòu)和算法之無權(quán)無向圖?,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01