Postman JSON Body中可直接用{{variable}}引用变量,但需确保变量已定义、作用域正确且不破坏JSON语法;数字变量不加引号,字符串变量须保留双引号,未定义变量将原样发送导致400错误。

Postman 的 JSON Body 中能直接用 {{variable}} 引用变量,但必须确保变量已定义、作用域正确,且 JSON 语法不被破坏——否则请求会因 JSON 解析失败而 400。
JSON Body 中引用环境/全局变量的写法
在 Body → raw → JSON 模式下,直接使用双花括号语法即可,Postman 会在发送前自动替换:
{
"username": "{{username}}",
"email": "{{email}}",
"age": {{age}}
}
注意:age 是数字类型,不能加引号;而字符串值(如 username、email)必须保留双引号包裹,否则 JSON 格式非法。
- 变量名大小写不敏感,但建议统一小写+下划线(如
{{user_id}}),避免团队协作时歧义 - 如果变量未定义或为空,Postman 会原样发送
"{{xxx}}"字符串,后端通常报错或忽略——这不是 Postman 报错,而是逻辑错误 - 不要在 JSON key 位置用变量(如
"{{field_name}}": "value"),Postman 不支持,会解析失败
动态变量(如 {{$randomEmail}})在 JSON 中怎么用
动态变量必须带 $ 前缀,且只能在运行时解析,所以同样适用 {{}} 包裹,但写法是 {{$randomEmail}}:
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
{
"email": "{{\$randomEmail}}",
"name": "{{\$randomFirstName}} {{\$randomLastName}}"
}
常见误操作:
- 漏掉反斜杠转义:写成
{{\$randomEmail}}是对的,写成{{$randomEmail}}在某些 Postman 版本里会被当作普通文本(尤其在旧版或 Runner 批量运行时) - 在 Pre-request Script 中想“生成并塞进 JSON”却手动拼字符串:没必要。直接在 Body 里写
{{\$randomInt}}更可靠 -
{{\$timestamp}}返回的是毫秒数(如1730735123456),若需格式化时间,得用脚本 +pm.variables.replaceIn()预处理
JSON 引用变量失败的典型现象和排查点
发出去的请求 Body 明明写了 {{token}},但服务端收不到或报 invalid json,大概率是以下之一:
- 变量定义在环境里,但右上角没选中对应环境——检查环境切换器是否亮起、名称是否匹配
- 变量名拼错,比如环境里设的是
auth_token,但 JSON 里写成{{access_token}} - JSON 中混用了单引号或中文引号(‘’、“”),导致语法校验失败——Postman 的 JSON 编辑器不会高亮这种错误,但后端解析器会拒收
- 变量值本身含未转义的双引号或换行符(如从响应提取的
description字段),导致 JSON 结构断裂;此时应改用脚本 +JSON.stringify()安全注入
最易被忽略的一点:Postman 的 JSON 模式只做基础语法高亮,不验证变量是否存在或是否合法。它把替换动作完全交给运行时,出错时既不报红也不提示——你得靠响应状态码和 Body 内容反推,而不是看编辑器界面。

















