如何计算JSON数组元素的长度

how to count length of the JSON array element

本文关键字:数组元素 JSON 何计算 计算      更新时间:2023-09-26

我试图计算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?"}的长度。这里有四项。我用data.shareInfo[i].length尝试了这个。但是会产生错误。

请告诉我如何找到长度....谢谢…

在回答问题之前,请先阅读一下本文档。那么你就清楚地知道答案了。

试试这个,它可能对你有用。

Object.keys(data.shareInfo[i]).length

首先,如果你要处理的对象是字符串那么你需要对其进行解析然后计算出键的长度

obj = JSON.parse(jsonString);
shareInfoLen = Object.keys(obj.shareInfo[0]).length;

首先,没有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

我想你应该试试

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);
}