广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Springboot 接口需要接收参数类型是数组问题
  • 420
分享到

Springboot 接口需要接收参数类型是数组问题

2024-04-02 19:04:59 420人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录接口需要接收参数类型是数组多个参以“,”拼接传递即可那么除了这样,我们还能怎么协调呢? SpringBoot接口接收数组及多个参数问题若接口中需

接口需要接收参数类型是数组

如题,一般我们普遍采用的协调方式:

多个参以“,”拼接传递即可

如:

那么除了这样,我们还能怎么协调呢? 

其实对应get请求springMVC内部是已经支持了这种以“,”逗号拼接的方式,也就是说,传参方式不变,但是我们后台接收的时候,可以不用那么繁琐以逗号切割,可以这样:

 对post请求除了可以要求传参以“,”逗号拼接,我们接口接到参后再切割,还可以直接要求对方传数组,我们用实体类接收

如:

也可以使用Map来接收 :

好了就到此,为什么要发这个文章,因为今天公司有伙伴在对数组参数的传递接收发问,我觉得有必要给一些伙伴普及一下这些普遍的处理协调参数为数组类型的接口方式。 

springboot接口接收数组及多个参数问题

本例为个人经历,必然存在认知局限与不足,欢迎指正以及提供更好方法。 

若接口中需要接受数组,那接口应该如何写呢?

一般而言我们会想到

@PostMapping("/xxxx")
public String test(List list){
    do sth;
}

假设我们写的接口正确,写完接口我希望使用postman来测试一下

params中似乎无法传数组呀

在body中用json格式传参数不就好了吗!

于是,修改接口

@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文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作