我正在尝试计算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
尝试了这个。但它会产生错误。
请有人告诉我如何找到长度....谢谢......
答案 0 :(得分:54)
答案 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);
}