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

如何用JavaScript/Postman预请求脚本动态构建含嵌套数组的JSON结构

Postman预请求脚本动态生成分类数组解决方案

你可以按以下步骤调整代码,适配CSV数据源的动态解析需求:


完整可运行代码

直接复制到Postman预请求脚本栏即可:

// 初始化基础请求体,字段名和默认值可按需修改
const bodyRequest = {
  "id": 1,
  "store": 1,
  "title": pm.variables.get("custom_title"),
  "url": pm.variables.get("custom_url"),
  "content": pm.variables.get("content"),
  "categories": []
}

// 读取CSV分类字段值,把括号内的category替换为你CSV里对应的分类字段名
const rawCats = pm.variables.get("category") || ""
// 按竖线拆分,自动过滤空值避免生成无效对象
const catList = rawCats.split('|').filter(i => i.trim())

// 遍历生成分类对象填入数组
catList.forEach((val, idx) => {
  bodyRequest.categories.push({
    // 要固定分类ID就写1,要自增就用idx+1
    "id": 1,
    "type": "Type",
    "name": val,
    "blog_category_path": val.toLowerCase()
  })
})

// 将生成的请求体存入环境变量,供请求调用
pm.environment.set("dynamicBody", JSON.stringify(bodyRequest))

请求配置步骤

在Postman的请求「Body」标签页:

  • 格式选择raw->JSON
  • 内容直接填写{{dynamicBody}}即可

运行集合时选择对应的CSV数据源,就会自动按你预期的结构生成动态请求体。


原代码问题说明

你之前的写法核心逻辑是对的,一般是几个细节没处理导致不生效:

  • 没有提前初始化bodyRequest.categories空数组,直接调用push会报错
  • 硬写了拆分的测试字符串,没有读取CSV对应的动态变量
  • 没有把生成的请求体存入Postman变量,请求无法获取构造后的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:36:03