Postman POST请求API Body字符串数组解析异常问题求助
解决Postman中JSON数组变量被合并为单个字符串的问题
问题场景
在Postman中引用JSON格式的数组变量providers时,变量被自动转换为逗号分隔的单个字符串,导致请求体中的providers字段结构不符合预期:
JSON数据源
{ "field-a": "askfhkfhksjfh", "field-b": "south32qa", "providers": ["prov-a", "prov-b", "prov-c"] }
原POST请求体
{ "name": "name-A", "id": "name-id", "providers": ["{{providers}}"] }
Postman生成的实际请求体(问题所在)
{ "name": "name-A", "id": "name-id", "providers": ["prov-a, prov-b, prov-c"] }
解决方案
方法1:直接引用变量替换整个数组
不要将变量包裹在数组中,直接用变量替换providers字段的数组值。修改后的请求体如下:
{ "name": "name-A", "id": "name-id", "providers": {{providers}} }
Postman会直接将providers变量对应的JSON数组插入请求体,生成预期结构:
{ "name": "name-A", "id": "name-id", "providers": ["prov-a", "prov-b", "prov-c"] }
方法2:通过预请求脚本处理变量(适用于需额外逻辑的场景)
如果需要对数组做额外处理,在Pre-request Script中添加代码解析变量并重新赋值:
// 获取原始providers数组变量 const rawProviders = pm.variables.get("providers"); // 将数组转为JSON字符串并设置为环境变量 pm.environment.set("processedProviders", JSON.stringify(rawProviders));
然后在请求体中引用处理后的变量:
{ "name": "name-A", "id": "name-id", "providers": {{processedProviders}} }
内容的提问来源于stack exchange,提问作者user19575906
相关产品推荐
相关产品推荐

