Postman使用Pre-Request Script修改JSON Body添加数组元素问题求助
问题原因
push()是仅数组类型可用的方法,你解析得到的declaration_obj是完整的根对象,不是目标rules数组,所以调用方法失败。你需要先定位到Common.Shared.test_policy.rules这个数组层级再执行新增操作。- 你写的
rule字符串包含不符合JSON规范的尾逗号,JSON.parse()会直接抛出语法错误。
修复后的Pre-Request Script代码
// 修复JSON语法,移除多余尾逗号 var rule = '{"name": "rule0","actions": [{"type": "accept","enabled": true}]}'; let rule_obj = JSON.parse(rule); // 解析存储的变量 let declaration_obj = JSON.parse(pm.variables.get("declaration")); // 定位到目标rules数组,unshift会把新规则插入数组头部,如果你要放到末尾改为push即可 declaration_obj.Common.Shared.test_policy.rules.unshift(rule_obj); // 序列化后存入环境变量 let newDeclaration = JSON.stringify(declaration_obj); pm.environment.set("newDeclaration", newDeclaration);
后续配置
POST请求的Body选择raw+JSON格式,直接填入{{newDeclaration}}即可使用修改后的请求体发起请求。
内容的提问来源于stack exchange,提问作者pcore
相关产品推荐
相关产品推荐

