繁体   English   中英

查找JSON对象的长度

[英]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 );

http://jsfiddle.net/pLAny/

您可以这样解决:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM