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'];
我正在解析一个 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'];