簡體   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