Python 官方文档:入门教程 => 点击学习
目录接口需要接收参数类型是数组多个参以“,”拼接传递即可那么除了这样,我们还能怎么协调呢? SpringBoot接口接收数组及多个参数问题若接口中需
如题,一般我们普遍采用的协调方式:
如:
其实对应get请求,springMVC内部是已经支持了这种以“,”逗号拼接的方式,也就是说,传参方式不变,但是我们后台接收的时候,可以不用那么繁琐以逗号切割,可以这样:
对post请求除了可以要求传参以“,”逗号拼接,我们接口接到参后再切割,还可以直接要求对方传数组,我们用实体类接收,
如:
也可以使用Map来接收 :
好了就到此,为什么要发这个文章,因为今天公司有伙伴在对数组参数的传递接收发问,我觉得有必要给一些伙伴普及一下这些普遍的处理协调参数为数组类型的接口方式。
本例为个人经历,必然存在认知局限与不足,欢迎指正以及提供更好方法。
一般而言我们会想到
@PostMapping("/xxxx")
public String test(List list){
do sth;
}
假设我们写的接口正确,写完接口我希望使用postman来测试一下
params中似乎无法传数组呀
于是,修改接口
@PostMapping("/xxxx")
public String test(@RequestBody List list){
do sth;
}
但是往往我们写接口的时候需要接收的参数不止简单数组,有可能是一个非常复杂的对象。
这里我们将问题假设为需要接收的参数为对象+数组,如下。
{
"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,只允许有一个参数。那希望上传多个对象怎么办呢?对!就是包个对象!!类似下面这样:
@PostMapping("/xxxx")
public String test(@RequestBody ParaDTO paraDTO){
do sth;
}
class ParaDTO{
Abroad abroad;
List<String> params;
}
解决~
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
--结束END--
本文标题: Springboot 接口需要接收参数类型是数组问题
本文链接: https://www.lsjlt.com/news/163733.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0