57

JSON配列要素の長さを数えようとしています。を使用して配列の長さを数えることを知っていますjson.array.length。それは、すべてのインデックスにいくつのアイテムがあるかを見つける必要があります。

私の配列が次の場合:

{
  "shareInfo": [{
      "id": "1",
      "a": "sss",
      "b": "sss",
      "question": "whi?"
    },
    {
      "id": "2",
      "a": "sss",
      "b": "sss",
      "question": "whi?"
    },
    {
      "id": "3",
      "a": "sss",
      "b": "sss",
      "question": "whi?"
    },
    {
      "id": "4",
      "a": "sss",
      "b": "sss",
      "question": "whi?"
    }
  ]
}

次に、 の長さを見つける必要があります{"id":"1","a":"sss","b":"sss","question":"whi?"}。この中には4つの項目があります。でこれを試しましたdata.shareInfo[i].length。しかし、それはエラーを生成します。

長さを見つける方法を教えてください....ありがとう....

4

4 に答える 4

100

答える前に、このドキュメントを一度読んでください。そうすれば、答えを明確に理解できます。

これを試してみてくださいそれはあなたのために働くかもしれません。

Object.keys(data.shareInfo[i]).length
于 2013-03-04T19:35:32.580 に答える
18

まず、扱っているオブジェクトが文字列の場合は、それを解析してからキーの長さを把握する必要があります。

obj = JSON.parse(jsonString);
shareInfoLen = Object.keys(obj.shareInfo[0]).length;
于 2013-03-04T19:10:06.153 に答える
1

まず、JSON オブジェクトのようなものはありません。JSON は、Javascript オブジェクト リテラルの表現として使用できる文字列形式です。

JSON は文字列であるため、Javascript はそれをオブジェクト (または配列など、使用しようとしているもの) ではなく、文字列のように扱います。

この違いを明確にするための良い JSON リファレンスを次に示します。

http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/

したがって、質問に記載されているタスクを達成する必要がある場合は、JSON 文字列をオブジェクトに変換するか、JSON 配列ではなく文字列として処理する必要があります。これを実現するためのライブラリがいくつかあります。http://www.json.org/js.htmlを参照してください。

于 2013-03-04T19:40:38.290 に答える
0

私はあなたが試してみるべきだと思います

data = {"shareInfo":[{"id":"1","a":"sss","b":"sss","question":"whi?"},
{"id":"2","a":"sss","b":"sss","question":"whi?"},
{"id":"3","a":"sss","b":"sss","question":"whi?"},
{"id":"4","a":"sss","b":"sss","question":"whi?"}]};

ShareInfoLength = data.shareInfo.length;
alert(ShareInfoLength);
for(var i=0; i<ShareInfoLength; i++)
{
alert(Object.keys(data.shareInfo[i]).length);
}
于 2013-03-04T19:23:46.223 に答える