无法访问带有“-”短划线的 JSON 属性

2022-08-30 01:55:58

当字符串具有短划线字符时,我无法从json对象中检索值:

{
"profile-id":1234, "user_id":6789
}

如果我尝试引用解析的,它将返回,但jsonObj.user_id将返回6789jsonObj.profile-idReferenceError: "id" is not defined

我没有办法修改外部api调用返回的值,并且尝试解析返回的字符串以删除破折号将破坏传递的URL等。帮助?


答案 1

jsonObj.profile-id是减法表达式(即 )。jsonObj.profile - id

要访问包含标识符中无法显示的字符的密钥,请使用方括号:

jsonObj["profile-id"]

答案 2

除了这个答案之外,请注意,在 Node 中.js如果您使用数组语法访问 JSON,则所有嵌套的 JSON 键都应遵循该语法[]

这是错误的方式

json.first.second.third['comment']

并将为您提供“未定义”错误。

这是正确的方法

json['first']['second']['third']['comment']