Postman脚本中如何引用键名包含Web地址的JSON属性
带特殊字符的JSON属性引用方案
JSON属性名如果包含点号、斜杠这类不符合JavaScript合法命名规则的特殊字符,无法通过常规的点号语法直接访问,强行使用点号语法会触发脚本报错。
正确写法
使用方括号语法,把完整的属性名作为字符串传入即可访问对应值:
// 直接获取目标字段 const targetId = parsed["http://mytestsite.uk/id"];
对应你原有存储环境变量的逻辑,替换后可正常运行的代码为:
pm.environment.set("customUserId", parsed["http://mytestsite.uk/id"]);
之前写法报错的原因
你之前尝试使用的parsed.http://mytestsite.uk/id,在JS引擎解析时会被拆解为多层嵌套的属性访问路径:
- 先读取
parsed对象下的http属性 - 再读取上一步结果下的
mytestsite属性 - 依次拆解路径直到最后的
id属性
和你想要的“访问单个完整命名属性”的逻辑完全不符,自然会因找不到对应层级的属性抛出错误。
注意:方括号内传入的属性名必须和JSON结构里的字段名完全匹配,包括所有特殊字符、大小写,否则会取不到值返回
undefined。
内容的提问来源于stack exchange,提问作者saab613
相关产品推荐
相关产品推荐

