You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman:如何在请求体中使用环境变量且保持JSON格式

解决Postman环境变量替换后请求体变为字符串的问题

嘿,我之前在Postman里也踩过一模一样的坑!明明变量都设好了,替换完发送请求就变成字符串,接口直接报错。别慌,咱们一步步来解决:

先搞懂为啥会变字符串

大概率是这几个原因:

  • 你的环境变量值本身带了多余的引号,比如把{"key":"value"}存成了"{"key":"value"}",替换后整个JSON就被包裹成字符串了
  • 请求头的Content-Type没设对,Postman没识别出这是JSON格式
  • 变量替换的位置不对,比如把整个JSON请求体用一个变量替换,但变量值不是合法的JSON结构

具体解决步骤

1. 检查环境变量的格式

打开你的环境变量编辑页,确保:

  • 如果变量是整个JSON请求体,值必须是标准的JSON,不能带外层引号,比如直接写:
    {"username": "sam", "email": "sam@example.com"}
    
  • 如果变量是单个字段值:
    • 字符串类型的值正常加引号(比如"sam"),在请求体里用{{username}}替换时要放在引号里:{"username": "{{username}}"}
    • 数字/布尔类型的值不要加引号(比如25或true),请求体里直接写{"age": {{userAge}}}

2. 锁定Content-Type请求头

在Postman的请求头里,一定要手动添加或确认Content-Type的值是application/json。有时候Postman会因为请求体内容变化自动修改这个头,导致接口识别不到JSON格式。

3. 用Pre-request Script修复字符串化的变量

如果你的变量不得不存成字符串形式的JSON(比如从其他地方复制过来的),可以用前置脚本把它转成合法的JSON对象:

// 假设你的环境变量名叫rawRequestBody
const rawStr = pm.environment.get("rawRequestBody");
try {
  const parsedBody = JSON.parse(rawStr);
  // 把解析后的对象重新设置为请求体
  pm.request.body.raw = JSON.stringify(parsedBody);
} catch (e) {
  console.error("变量值不是合法JSON:", e);
}

4. 验证替换后的请求体

替换完成后,切换到请求体的Raw标签,点击旁边的JSON选项,如果Postman没有弹出红色的语法错误提示,说明格式是对的。也可以点击Preview标签,看看最终的请求体结构是不是符合预期。

按照这几步来,基本就能解决请求体变字符串的问题啦!

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:18:41