【发布时间】:2019-04-16 04:47:14
【问题描述】:
我的 JSON 对象将数字作为某些嵌套对象的键。无法使用 .(dot) 表示法访问这些元素
示例代码 { “1”:“完成” }
假设对象名称是 JSON JSON.1 访问方法不起作用
错误 意外的数字
【问题讨论】:
-
x[1] 其中 x 是包含解析 JSON 作为 javascript 对象的 javascript 变量的名称
标签: javascript json object
我的 JSON 对象将数字作为某些嵌套对象的键。无法使用 .(dot) 表示法访问这些元素
示例代码 { “1”:“完成” }
假设对象名称是 JSON JSON.1 访问方法不起作用
错误 意外的数字
【问题讨论】:
标签: javascript json object
点表示法不适用于所有键,但您始终可以尝试这样:JSON["1"],甚至为简单起见JSON[1]
【讨论】:
使用括号表示法:
const obj = { "1" : "Done" };
console.log(obj[1]);
【讨论】:
您不能使用 dot notationMDN 访问 JavaScript 对象中的编号元素。
该属性必须是有效的 JavaScript 标识符,即一系列字母数字字符,还包括下划线 ("_") 和美元符号 ("$"),不能以数字开头。
您必须选择不同的访问方式,在这种情况下最常见的是Bracket notationMDN
JSON[1]
【讨论】:
尝试在使用数字时添加双引号。 您尝试使用哪种语言运行。
在下面的 Javascript 中,双引号和不带引号都可以使用。
<script>
var data = '{"1":"Done"}';
var json = JSON.parse(data);
document.write (json[1]); // without double quotes
document.write (json["1"]);// with double quotes
</script>
【讨论】:
在这种情况下,您应该使用 [] 而不是点运算符。
var tes = { "test1" : { "3" : "Done", "char" : "TODO"}}
for(var property in tes.test1) {
//console.log(property)
console.log(tes.test1[property])
}
var tes = { "test1" : { "3" : "Done", "char" : "TODO"}}
for(var property in tes.test1) {
//console.log(property)
console.log(tes.test1[property])
}
【讨论】: