我有以下的JSON表示:为什么我不能使用点符号访问JSON字典元素?
var collectionCopy = JSON.parse(JSON.stringify(
{
1 : {
2: "2"
}
}
));
为什么不能我访问键 “2” 使用点符号(即collectionCopy.1.2
)?
我有以下的JSON表示:为什么我不能使用点符号访问JSON字典元素?
var collectionCopy = JSON.parse(JSON.stringify(
{
1 : {
2: "2"
}
}
));
为什么不能我访问键 “2” 使用点符号(即collectionCopy.1.2
)?
这是因为键是字符串不是实际数字:
访问它的使用方法:
collectionCopy[1][2]
或
collectionCopy['1']['2']
但是当我有一个正常的对象'var newObject = {1:{2:“2”}};',我可以使用点符号'newObject.1.2'。这是因为我有'.stringify()'吗?或者JSON将密钥的每个键和值都变成字符串? 谢谢你的文档,我读过它们。 –
你能告诉我哪里工作?我只是试了一下,我不能得到它的工作: https://jsbin.com/tevebi/1/edit?js,console – JordanHendrix
我认为它应该工作:DI认为我只是混淆简单的语法'newObject .1.2'不起作用,它不应该,但如果我有这样的对象'var newObject = {one:{two:“2”}}''console.log(newObject.one.two)'print '“2”'到控制台。 –
您可以使用点符号用于仅在语言中的有效标识符上访问对象的属性。
而且由于数字(或任何以数字开头的内容)不是有效的标识符,只能使用括号表示法来访问它(作为对象的属性)。
这只是一个对象,现在你已经解析了它。使用'collectionCopy ['1'] ['2']' – Andy
你需要使用collectionCopy ['1'] ['2']它不知道你的意思是字符串不是实际的数字 – JordanHendrix
要作为collectionCopy.1访问,属性1是不是有效的JavaScript标识符。您只能使用带点符号的有效JavaScript标识符的属性。 – randominstanceOfLivingThing