必须用raw+JSON模式:一、Body选raw并下拉选JSON,自动添加Content-Type;二、确保JSON数组语法合法,如[{"name":"Alice","age":28}];三、后端需用@RequestBody List接收并匹配HTTP方法;四、避免全角标点与非法逗号。

Postman 发送 JSON 数组必须用 raw + JSON 模式
Postman 不会自动识别你粘贴的方括号 [...] 是数组还是普通字符串——它只按当前 Body 类型解析。如果你在 form-data 或 urlencoded 模式下直接写 [{"id":1},{"id":2}],后端收到的只是原始字符串,JSON.parse() 会报错或被框架忽略。
正确做法是:
- 点开
Body标签页,选中raw - 右上角下拉菜单必须选
JSON(不是Text或空选项) - 此时 Postman 会自动在
Headers中添加Content-Type: application/json;若手动删过,需补回 - 直接输入合法 JSON 数组,例如:
[{"name":"Alice","age":28},{"name":"Bob","age":32}]
后端接收不到数组?检查 Controller 参数类型和注解
即使 Postman 发对了,Spring Boot、Fastjson、Gin 等框架仍可能把整个数组当成字符串或报 400 错误。关键不在前端,而在后端如何声明接收参数。
常见错误场景:
- 用
@RequestParam String data接收数组 JSON → 后端拿到的是未解析的原始字符串,需手动JSONArray.parseArray(...) - 用
@RequestBody List但没加@PostMapping(不是@GetMapping)→ HTTP 方法不匹配,直接 405 - 用了
@RequestBody却在 URL 里拼查询参数(如?type=bulk),而没在 Header 中带Content-Type: application/json→ Spring 拒绝解析请求体
推荐写法(Spring Boot):
@PostMapping("/users/batch")
public ResponseEntity<string> batchCreate(@RequestBody List<user> users) { ... }</user></string>
数组里含中文或特殊字符时 400 报错?优先查编码和引号
Postman 默认使用 UTF-8,但如果你从其他编辑器复制 JSON,容易混入全角引号、中文逗号、BOM 头或不可见控制字符,导致 Unexpected token 类错误。
快速自查项:
- 所有双引号必须是英文半角
",不能是中文“” - 结尾不能有多余逗号,比如
{"id":1,}在 JSON 数组元素里非法 - 避免在值里直接写换行符,如需换行请用
\n转义 - 粘贴后可先在在线校验工具(如 jsonlint.com)验证语法
示例错误 JSON:
[{"name":"张三","score":95}] ← 全角冒号、全角引号
正确写法:
[{"name":"张三","score":95}]
想批量发多个数组请求?别手点,用 Collection Runner + CSV
手动改 JSON 数组内容再点 Send,适合测一两个 case;但要压测 100 组不同用户数据,就得自动化。
Postman 原生支持:
- 把数组拆成 CSV 文件,每行一个对象字段:
name,age,email→Alice,28,a@b.com - 在 Collection 中写脚本,用
pm.iterationData.get("name")拼出单个 JSON 对象 - 若真要发「多组数组」(比如每次发 5 条一批),得用
Pre-request Script动态生成pm.request.body.raw,而不是靠 UI 切换
注意:Collection Runner 不支持直接导入 JSON 数组文件,CSV 是最稳的批量入口。











