Postman测试脚本中如何访问JSON响应带冒号的字段
JS对象带特殊字符属性名的正确访问方式
JavaScript 访问对象属性分两种标准语法:
- 点号访问:仅支持符合JS标识符命名规则的属性名(允许字符为字母、数字、下划线、$,且数字不能作为开头),属性名带冒号、横杠、空格等特殊字符时无法使用这种写法
- 方括号索引访问:支持任意合法字符串作为属性名,属性名包含特殊字符时必须用这种写法,不需要额外转义特殊字符
你之前尝试的写法错误原因:
e.aaa:bbb:会被JS解析器识别为三元运算符片段,直接触发语法错误e.'aaa:bbb'、e."aaa:bbb":点号访问语法不支持后面直接跟字符串字面量,属于非法写法e.aaa\:bbb:点号访问场景下反斜杠转义无效,冒号本身也不属于JS标识符内需要转义的字符e.jsonValue['aaa:bbb']:pm.response.json()返回的是原生JavaScript普通对象,不存在内置的jsonValue属性,属于多余的无效调用
正确可运行代码
let res = pm.response.json(); res.results.forEach((e) => { // 方括号内直接传入带冒号的属性名字符串即可,无需转义 console.log(e['aaa:bbb']); })
补充:所有不符合标识符命名规则的属性名(含冒号、横杠、空格、中文等特殊字符的属性名,以及动态生成的属性名),都统一使用
对象['属性名']的方括号语法访问,只要字符串引号配对正确即可,不需要对属性名内的特殊符号做额外转义处理。
内容的提问来源于stack exchange,提问作者LazyCoder777
相关产品推荐
相关产品推荐

