[英]Find the length of an JSON object
我有一个类似以下的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\"}]" }
]
}
]
}
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 );
您可以这样解决:
var length = JSON.parse(block.number.path[i].air).length;
console.log(length);
看起来有些JSON格式不正确。 “ air”,“ water”和“ sand”都是JSON数组...但是解析为字符串。 如果您是生成JSON的人,请仔细研究一下,因为它似乎不正确。 正如其他答案所指出的那样,只要您可以确保目标浏览器具有该接口(大多数现代浏览器JSON.parse()
,它就可以使用JSON.parse()
在Javascript中解决。
对于任何JSON数组(使用[]
括号声明的任何内容),您都可以检查其.length
属性。
假设json
是一个包含JSON的变量,则可以执行以下操作:
json["block"][0]["path"][0]["air"].length
Block是一个数组,因此您必须首先访问该元素:
a.block[0].path[0].air.length
其中a
是用于保存数据的变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.