-1

次のような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\"}]" }
      ]
    }
  ]
}
4

5 に答える 5

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/

于 2013-07-03T14:37:12.193 に答える
2

これは次のように解決できます。

var length = JSON.parse(block.number.path[i].air).length;
console.log(length);
于 2013-07-03T14:37:30.317 に答える
1

その JSON の一部が不正な形式になっているようです。「空気」、「水」、「砂」はすべて JSON 配列ですが、文字列に解析されます。あなたが JSON を生成している場合は、それを調べてください。正しくないようです。他の回答が指摘してJSON.parse()いるように、ターゲットブラウザにそのインターフェース(ほとんどの最新のもの)があることを確認できる限り、Javascriptを使用して解決できます。

任意の JSON 配列 (角かっこを使用して宣言されたもの) について、そのプロパティ[]を確認できます。.length

于 2013-07-03T14:40:47.017 に答える
1

それjsonが JSON を含む変数であるとすると、次のことができます。

json["block"][0]["path"][0]["air"].length
于 2013-07-03T14:41:22.130 に答える
0

ブロックは配列なので、最初に要素にアクセスする必要があります:

a.block[0].path[0].air.length

whereaは、データを保持している変数です。

于 2013-07-03T14:39:38.137 に答える