Json 元素名称上带有破折号 (-) 字符的对象

Json object with dash (-) character on element name

我正在解析一个 json 对象,其中包含一个名为 data-config 的元素。

例如:

var video = data.element.data-config;

每当我解析这个元素时,我都会收到这个错误:

ReferenceError: config is not defined

ReferenceError 没有提到 data-config 而只是 config.
知道为什么我会收到此错误吗? 这与破折号 (-) 字符有关吗?

有效字符

一般JavaScript,variable/function名字不能包含-。它们只能包含字母$_(下划线)

所以...

错误来了,因为它正在解析:

var video 等于 data.element.data(有效)减去 config

解决方案

因为变量不能包含破折号,所以你需要使用我要调用的String/Bracket Notation

data.element['data-config']

如果您需要做的不止一个,请做

data.element['data-config']['child']

我不建议在不必要时使用 String/Bracket 表示法,这是更好的做法。

当对象属性包含特殊字符时,您必须使用 [] 表示法

var video = data.element['data-config'];