如何统计JSON文件中数组内的对象数量?

问题描述:

所以,我的服务器将接收具有以下结构的JSON文件:如何统计JSON文件中数组内的对象数量?

{ 
"serial": "123", 
"pass": "abc", 
"archives": [ 
    { 
     "values" = 1 
    }, 
    { 
     "values" = 2 
    }, 
    { 
     "values" = 3 
    }, 
    { 
     "values": 4 

    } 
    ] 
} 

我怎么能算数组里面的“档案”的对象的数量从我的主文件? (这里是4个)

+1

你通常如何找到数组的长度? – jonrsharpe

+1

那不是有效的JSON。 – corn3lius

+3

这真的没有显示研究努力... – Argee

如果你的对象被称为obj

var obj = { 
"serial": "123", 
"pass": "abc", 
"archives": [ 
    { 
     "values": 1 
    }, 
    { 
     "values": 2 
    }, 
    { 
     "values": 3 
    }, 
    { 
     "values": 4 
    } 
    ] 
}; 

然后,它obj.archives.length

顺便说一句,我修正了你的JSON,因为它是无效的。在真实服务器上,您需要将JSON.parse放在try/catch区块内或使用tryjson以避免将代码损坏为无效的JSON。

+0

假设其有效的json ... – corn3lius

+0

@ corn3lius是啊 - 事实并非如此。我修好了它。 – rsp

Array.length:JavaScript数组长度属性返回一个无符号的32位整数,该整数指定数组中元素的数量,也可用于设置数组的长度。

语法

返回的数组的长度:

array.length 

设置一个数组的长度:

array.length = number 

代码

var obj = {"serial": "123","pass": "abc","archives": [{"values": 1}, {"values": 2}, {"values": 3}, {"values": 4}]}; 
 
var len = obj.archives.length; 
 

 
console.log(len);

请注意,您可以设置length属性来截断随时数组。当您通过更改其长度属性来扩展数组时,实际元素的数量不会增加;例如,如果在当前为2时将长度设置为3,则数组仍然只包含2个元素。因此,length属性不一定表示数组中定义的值的数量。另请参阅relationship between length and numerical properties