如何通过Postman以RequestBody向Spring Controller传递int数组?
用@RequestBody接收int[]数组的实现方法
一、修改Controller代码
直接把原来的@RequestParam替换成@RequestBody即可,修改后的代码如下:
@PostMapping public int acceptArray(@RequestBody int[] array) { // 保留原有的空数组校验逻辑 if (array == null || array.length == 0) { throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "You entered an empty array"); } return arraySolver.arraySolver(array); }
二、关键概念解释
@RequestBody:这个注解告诉Spring从HTTP请求的请求体(而非URL参数)中读取数据,并自动把JSON格式的请求体转换成对应的Java对象(这里就是int[]数组)。- 前提要求:前端发送请求时,必须将请求头的
Content-Type设置为application/json,否则Spring无法正确解析JSON数据。
三、前端请求示例
发送POST请求时,请求体需要是标准的JSON数组格式,比如[1,2,3,4]。下面是两种常见的测试方式:
1. 使用curl命令测试
curl -X POST http://localhost:8080/your-api-path \ -H "Content-Type: application/json" \ -d "[1,3,5,7]"
2. 使用Postman测试
- 请求方法选择POST
- 填写你的接口URL
- 在Headers选项卡添加
Content-Type: application/json - 在Body选项卡选择
raw,格式选JSON,输入数组内容[1,2,3,4]后点击发送。
四、注意事项
- 如果请求体为空,或者不是合法的JSON数组(比如写成
{1,2,3}这种错误格式),Spring会自动抛出HttpMessageNotReadableException,返回400 Bad Request错误。 - Spring Boot项目默认已经包含Jackson JSON解析依赖,无需额外引入,就能自动完成JSON与Java对象的转换。
内容的提问来源于stack exchange,提问作者tzvezdov
相关产品推荐
相关产品推荐

