Zar*_*Zar 71 javascript json identifier
最近开始挖掘JSON,我现在正在尝试使用一个数字作为"标识符",这不是很好.foo:"bar"
工作正常,而0:"bar"
不是.
var Game = {
status: [
{
0:"val",
1:"val",
2:"val"
},
{
0:"val",
1:"val",
2:"val"
}
]
}
alert(Game.status[0].0);
Run Code Online (Sandbox Code Playgroud)
有没有办法按以下方式进行?类似的东西Game.status[0].0
会让我的生活变得更轻松.当然还有其他方法,但这种方式是首选.
Que*_*tin 108
JSON只允许键名是字符串.这些字符串可以包含数值.
你不是在使用JSON.你有一个JavaScript对象文字.您可以使用标识符作为键,但标识符不能以数字开头.你仍然可以使用字符串.
var Game={
"status": [
{
"0": "val",
"1": "val",
"2": "val"
},
{
"0": "val",
"1": "val",
"2": "val"
}
]
}
Run Code Online (Sandbox Code Playgroud)
如果使用点表示法访问属性,则必须使用标识符.使用方括号表示法:Game[0][0]
.
但鉴于这些数据,阵列似乎更有意义.
var Game={
"status": [
[
"val",
"val",
"val"
],
[
"val",
"val",
"val"
]
]
}
Run Code Online (Sandbox Code Playgroud)
可能你需要一个阵列?
var Game = {
status: [
["val", "val","val"],
["val", "val", "val"]
]
}
alert(Game.status[0][0]);
Run Code Online (Sandbox Code Playgroud)
首先,它不是JSON:JSON要求所有键必须是字符串.
其次,常规数组做你想要的:
var Game = {
status: [
[
"val",
"val",
"val"
],
[
"val",
"val",
"val"
]
}
}
Run Code Online (Sandbox Code Playgroud)
如果你使用,将会工作Game.status[0][0]
.您不能使用带点符号(.0
)的数字.
或者,您可以引用数字(即{ "0": "val" }...
); 您将使用普通对象而不是数组,但相同的语法将起作用.
归档时间: |
|
查看次数: |
80855 次 |
最近记录: |