Postman中参数名含[和]时,x-www-form-urlencoded需手动URL编码为[],form-data可直接填写原样,JSON中应避免使用而改用嵌套对象。

Postman 里参数名含 [ 和 ] 怎么填?
直接在 Params 或 Body 中写 user[name]、ids[0] 这类带方括号的参数名,后端收不到——不是 Postman 不支持,而是它默认把方括号当普通字符处理,没做特殊转义或格式适配。
x-www-form-urlencoded 下带方括号的 key 要手动 URL 编码
这类参数常见于传统 PHP/Laravel/ThinkPHP 后端,依赖 name="user[name]" 这种 HTML 表单语法解析嵌套结构。Postman 的 x-www-form-urlencoded 模式本身不自动编码方括号,必须人工处理:
-
[要替换成[,]替换成] - 例如:
user[name]→ 填成user[name];roles[0][id]→ 填成roles[0][id] - 如果不编码,服务端收到的是字面量
user[name],多数框架会忽略或报错(如 Spring Boot 默认不识别该格式) - Postman 不提供一键编码按钮,得自己替换或用在线工具辅助
form-data 模式下可直接写原样参数名
如果你的接口实际接收的是 multipart/form-data(比如上传文件同时传结构化字段),那 form-data 标签页允许你直接输入 user[name] 作为 Key,Value 填对应值,无需编码:
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
- Postman 会按 multipart 协议原样打包,服务端(如 PHP
$_POST)能正常解析出嵌套数组 - 注意:此时请求头
Content-Type会自动带上 boundary,不用手填 - 但若后端是 Spring Boot +
@RequestParam,仍需确认是否开启spring.mvc.ignore-default-model-on-redirect=false等兼容配置,否则可能丢值
JSON 请求体中带方括号?别这么干
如果用 raw + application/json,参数名里写 "user[name]": "zhangsan" 是合法 JSON,但属于反模式:
- 语义混乱:JSON 键名不该模拟表单语法,应改用标准嵌套对象,如
{"user": {"name": "zhangsan"}} - 后端反序列化容易失败:Jackson/Gson 默认不把
user[name]映射到User.name字段,除非加自定义@JsonAlias或反序列化器 - 调试困难:日志和 Swagger 文档都难以表达这种键名,团队协作成本高
方括号本质是表单提交的历史遗留语法,现代 API 应优先用路径参数、嵌套 JSON 或明确的扁平字段命名(如 user_name),而不是在 Postman 里硬凑编码或畸形键名。

















