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

如何在Postman的JSON请求体键名中使用变量?

解决Postman JSON请求体键名使用变量的问题

嘿,这个问题我之前折腾过好一会儿!Postman默认确实不支持直接在JSON的键名位置用{{变量名}}的语法,但有两种非常实用的方法能搞定,我给你一步步说清楚:

方法一:用Pre-request Script动态生成请求体

这是最稳妥的方式,通过脚本构建请求体对象,把变量作为键名,再转成JSON字符串供请求使用:

  1. 先定义好所需变量:
    不管是环境变量、集合变量还是全局变量,先把要用作键名的变量(比如actionName,值设为act.getEntries)和其他变量(authToken、activelistid)都配置好。

  2. 编写Pre-request Script:
    打开请求的「Pre-request Script」标签,写入以下代码:

    // 从变量中取值
    const actionName = pm.variables.get("actionName");
    const authToken = pm.variables.get("authToken");
    const activelistid = pm.variables.get("activelistid");
    
    // 构建包含动态键名的请求体对象
    const requestBody = {
      [actionName]: {
        "act.authToken": authToken,
        "act.resourceId": activelistid
      }
    };
    
    // 把对象转成JSON字符串,存入临时变量
    pm.variables.set("dynamicRequestBody", JSON.stringify(requestBody));
    
  3. 配置请求体:
    切换到请求的「Body」标签,选择「Raw」格式,确保Content-Type设置为application/json,然后直接输入{{dynamicRequestBody}}即可。

方法二:直接在Raw请求体中使用模板语法(简化版)

如果你的场景比较简单,也可以直接在Raw请求体里写带变量的键名,但需要注意Postman的变量解析规则:
在Raw请求体中直接这样写:

{
  "{{actionName}}": {
    "act.authToken": "{{authToken}}",
    "act.resourceId": "{{activelistid}}"
  }
}

不过要注意,这种方法在某些Postman版本中可能需要确保「Settings」里的「Enable variable syntax in request body」选项是开启的。如果遇到解析失败的情况,优先用方法一更靠谱。

调试小技巧

写完之后可以打开Postman的「Console」(左下角),在脚本里加一句console.log(pm.variables.get("dynamicRequestBody")),看看生成的JSON字符串是否符合预期,方便快速排查问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:01:23