如何计算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