找到JSON对象的长度

时间:2013-07-03 14:35:16

标签: javascript json

我有一个类似下面的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\"}]" }
      ]
    }
  ]
}

5 个答案:

答案 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 );

http://jsfiddle.net/pLAny/

答案 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是您保存数据的变量。