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

时间:2013-03-04 19:07:39

标签: javascript jquery

我正在尝试计算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尝试了这个。但它会产生错误。

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

4 个答案:

答案 0 :(得分:54)

在回答之前,请阅读此Documentation一次。然后你清楚地理解答案。

试试这可能对你有用。

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

答案 1 :(得分:10)

首先,如果你正在处理的对象是一个字符串,那么你需要解析它然后找出键的长度:

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

答案 2 :(得分:0)

首先,没有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以获取参考。

答案 3 :(得分:-1)

我想你应该试试

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