此问题在此处已有答案:
How can I access object properties containing special characters?(2个答案)
How do I reference a JavaScript object property with a hyphen in it?(11个答案)
4天前关闭。
当字符串中包含破折号时,我无法从json对象中检索值:
{
"profile-id":1234, "user_id":6789
}
如果我尝试引用解析后的jsonObj.profile-id
,它将返回ReferenceError: "id" is not defined
,但jsonObj.user_id将返回6789
我没有办法修改外部api调用返回的值,并且试图解析返回的字符串以删除破折号会破坏URL等,它们也会被传递。帮助?
5条答案
按热度按时间ogsagwnx1#
jsonObj.profile-id
是减法表达式(即jsonObj.profile - id
)。要访问包含不能出现在标识符中的字符的密钥,请使用方括号:
mrzz3bfm2#
除了this answer之外,请注意,在Node.js中,如果您使用数组语法
[]
访问JSON,则所有嵌套的JSON关键字都应遵循该语法走错路了
并且将给予“undefined”错误。
这是正确的方法
k4emjkb13#
对于ansible,使用连字符,这对我很有效:
v09wglhw4#
对于任何尝试将接受的解决方案应用于HomeAssistant值模板的用户,如果嵌套在双引号中,则必须使用单引号:
sd2nnvve5#
如果您使用的是Linux,请尝试使用以下模板打印包含破折号'-'的JSON值
对我很有效。