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

我正在尝试计算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?"}的长度{"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字符串转换为对象。 有几个库可以实现这一目标。 请参阅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