无法使用“-”破折号访问 JSON 属性

新手上路,请多包涵

当字符串具有破折号字符时,我无法从 json 对象中检索值:

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

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

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

原文由 user1902467 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 356
2 个回答

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

要访问包含不能出现在标识符中的字符的键,请使用方括号:

 jsonObj["profile-id"]

原文由 SLaks 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

这是错误的方法

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

并且会给你“未定义”的错误。

这是正确的方法

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

原文由 Sohel Ahmed Mesaniya 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏