我有一个类似下面的JSON。 如何在控制台中找到空气的长度,
console.log (block.number.path[i].air.length);
{ "block": [
{ "number": "36",
"path": [
{ "air": "[{\"name\":\"0\"},{\"name\":\"1\"},{\"name\":\"2\"}]" },
{ "water": "[{\"name\":\"3\"},{\"name\":\"4\"},{\"name\":\"5\"}]" },
{ "sand": "[{\"name\":\"6\"},{\"username\":\"7\"},{\"name\":\"8\"}]" }
]
}
]
}
答案 0 :(得分:4)
air
本身包含一个JSON编码数组,您必须首先解码:
// your obj in here
var obj = { "..." : "..." };
// grab the respective length of the "air" attribute
var air = JSON.parse( obj.block[0].path[0].air );
console.log( air.length );
答案 1 :(得分:2)
你可以这样解决这个问题:
var length = JSON.parse(block.number.path[i].air).length;
console.log(length);
答案 2 :(得分:1)
看起来有些JSON格式不正确。 " air"," water"," sand"都是JSON数组......但是解析成字符串。如果您是生成JSON的人,那么请查看,因为它看起来并不正确。正如其他答案所指出的那样,只要您确定目标浏览器具有该界面(最现代的界面),它仍然可以使用JSON.parse()
在Javascript中解决。
对于任何JSON数组(使用[]
括号声明的任何内容),您可以检查其.length
属性。
答案 3 :(得分:1)
鉴于json
是包含JSON的变量,您可以这样做:
json["block"][0]["path"][0]["air"].length
答案 4 :(得分:0)
Block是一个数组,因此您必须首先访问该元素:
a.block[0].path[0].air.length
其中a
是您保存数据的变量。