当前位置: 首页 > 面试题库 >

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

王英奕
2023-03-14
问题内容

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

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

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

我没有办法修改外部api调用返回的值,并且试图解析返回的字符串以删除破折号也会破坏传递的url等。救命?


问题答案:

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

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

jsonObj["profile-id"]


 类似资料:
  • 问题内容: 我开始学习一些JavaScript,并且了解在命名标识符时不允许使用破折号。但是,在CSS中,ID和类通常使用破折号。 在CSS中使用破折号是否会干扰javascript交互?例如,如果我要使用。我已经尝试了一些使用getElementByID并将破折号作为div ID的名称的示例,并且它可以工作,但是我不确定在所有其他情况下是否都是这种情况。 问题答案: 在ID(或类名,如果您选择的

  • 问题内容: 我正在看http://docs.jquery.com/Plugins/Authoring#Defaults_and_Options为jQuery创建一个简单的插件。在有关选项和设置的部分之后,我执行了以下操作,该操作不起作用(脚本遇到设置后退出)。 一旦我从背景色中删除了破折号,一切就可以正常工作。 我是否缺少某些内容,或者jQuery文档是否错误? 问题答案: 没有。解析器会将其解释

  • 我有一个values.yaml,我将一个值存储在一个属性中,还有一个deployment.yaml,我尝试将该值赋给一个环境变量。问题是属性名包含破折号,并抛出以下错误消息。 “空值”是因为我试图将名称引用为 {{ Values.security.enablemockservice | 引号 }},而不使用缓行绑定的破折号,但实际的属性名称是 Values.security.enable-mock

  • 问题内容: 我要备份数据库时出现错误 有什么办法可以用表名(temp_01-01-000001)解决这个问题。 问题答案: 您可以编辑文件/system/database/drivers/mysql/mysql_utility.php的第132行 从: 至:

  • 问题内容: 我正在使用jq,但json标记中包含“-”使jq无法编译。我无法逃脱它使其工作。这里的命令 我已经在jq的github上阅读了这篇帖子https://github.com/stedolan/jq/issues/202,但我无法使其正常运行。 这是curl的输出 任何想法? 问题答案: 您需要用方括号和双引号引起来: 使用您给定的输入,它返回: 该JQ手册(开发) - >基本过滤器: 最

  • 我正在使用plotly dash创建一个web应用程序,用于图形生成和回调处理。我使用dash核心组件v0.18.1 尝试动态添加图形时(每次单击按钮时,都会添加新图形),控制台中会出现错误: bundle.js?v=0.11.2:9未捕获(promise中)错误:未找到dash_core_组件。在Object.resolve(bundle.js?v=0.11.2:9)在s(bundle.js?v