Springboot?接口需要接收參數(shù)類型是數(shù)組問題
接口需要接收參數(shù)類型是數(shù)組
如題,一般我們普遍采用的協(xié)調方式:
多個參以“,”拼接傳遞即可
如:


那么除了這樣,我們還能怎么協(xié)調呢?
其實對應get請求,springmvc內部是已經(jīng)支持了這種以“,”逗號拼接的方式,也就是說,傳參方式不變,但是我們后臺接收的時候,可以不用那么繁瑣以逗號切割,可以這樣:


對post請求除了可以要求傳參以“,”逗號拼接,我們接口接到參后再切割,還可以直接要求對方傳數(shù)組,我們用實體類接收,
如:



也可以使用Map來接收 :


好了就到此,為什么要發(fā)這個文章,因為今天公司有伙伴在對數(shù)組參數(shù)的傳遞接收發(fā)問,我覺得有必要給一些伙伴普及一下這些普遍的處理協(xié)調參數(shù)為數(shù)組類型的接口方式。
springboot接口接收數(shù)組及多個參數(shù)問題
本例為個人經(jīng)歷,必然存在認知局限與不足,歡迎指正以及提供更好方法。
若接口中需要接受數(shù)組,那接口應該如何寫呢?
一般而言我們會想到
@PostMapping("/xxxx")
public String test(List list){
do sth;
}假設我們寫的接口正確,寫完接口我希望使用postman來測試一下

params中似乎無法傳數(shù)組呀
在body中用json格式傳參數(shù)不就好了嗎!

于是,修改接口
@PostMapping("/xxxx")
public String test(@RequestBody List list){
do sth;
}問題解決~
但是往往我們寫接口的時候需要接收的參數(shù)不止簡單數(shù)組,有可能是一個非常復雜的對象。
這里我們將問題假設為需要接收的參數(shù)為對象+數(shù)組,如下。
{
"abroad": {
"id":5,
"studentId":1,
"projectName":"哈佛訪學"
},
"params": ["id","studentId","projectName"]
}自然地,我們一般會這么想:
@PostMapping("/xxxx")
public String test(@RequestBody Abroad abroad,@RequestBody List<String> params){
do sth;
}但是這是錯的??!
如果使用@RequestBody,只允許有一個參數(shù)。那希望上傳多個對象怎么辦呢?對!就是包個對象??!類似下面這樣:
@PostMapping("/xxxx")
public String test(@RequestBody ParaDTO paraDTO){
do sth;
}
class ParaDTO{
Abroad abroad;
List<String> params;
}解決~
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot使用Validation進行參數(shù)校驗的示例詳解
在 SpringBoot項目開發(fā)中,有一個觀點是不要相信前端傳入的參數(shù),因為你不知道用戶是怎么操作我們接口的,所以在后端也需要對參數(shù)進行校驗,這篇文章主要講講我們項目中最常使用的驗證方案2023-05-05
Java中ArrayBlockingQueue和LinkedBlockingQueue
這篇文章主要介紹了Java中ArrayBlockingQueue和LinkedBlockingQueue,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-09-09
Java Swing實現(xiàn)餐廳點餐系統(tǒng)源碼(收藏版)
這篇文章主要介紹了Java Swing實現(xiàn)餐廳點餐系統(tǒng)源碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02

