Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 统计json对象的记录_Javascript_Json - Fatal编程技术网

Javascript 统计json对象的记录

Javascript 统计json对象的记录,javascript,json,Javascript,Json,我试图统计JSON对象中的记录。计数不正确 代码 var jsonObject = {"d":"[{\"Country\":\"\",\"CountryCode\":\"\",\"Location\":\"\",\"Group\":\"\",\"RoomMailId\":\"Ex

我试图统计JSON对象中的记录。计数不正确

代码

var jsonObject = {"d":"[{\"Country\":\"\",\"CountryCode\":\"\",\"Location\":\"\",\"Group\":\"\",\"RoomMailId\":\"ExchangeRoomTest1@demo.com\",\"Description\":\"\",\"Telephone\":\"\",\"DisplayName\":\"ExchangeRoomTest1\",\"CondecoRoomId\":0,\"CondecoRoomName\":\"\",\"IsMapped\":false,\"LastSyncTimeLocal\":\"\"},{\"Country\":\"\",\"CountryCode\":\"\",\"Location\":\"\",\"Group\":\"\",\"RoomMailId\":\"ExchangeRoomTest2@demo.com\",\"Description\":\"\",\"Telephone\":\"\",\"DisplayName\":\"ExchangeRoomTest2\",\"CondecoRoomId\":0,\"CondecoRoomName\":\"\",\"IsMapped\":false,\"LastSyncTimeLocal\":\"\"}]"};
var keyCount  = Object.keys(jsonObject.d).length
document.write(keyCount);
输出

489

预期产出


2

由于您已将
数据字符串化,请使用
JSON.parse()
将其转换为js对象,然后您可以获得其长度

var jsonObject={
“d:“[{\'Country\':\”、\'CountryCode\':\”、\'Location\':\“\”、\'Group\':\”、\'RoomMaild\':\”ExchangeRoomTest1@demo.com\“,”描述\“:\”,”电话\“:\”,”显示名称\“:\”,”ExchangeRoomTest1 \“,”CondecoRoomId \“:0,\”CondecoRoomName \“:\”,”IsMapped \“:false,\”LastSyncTimeLocal \“:\”,“{\”国家\“:\”,“,”国家代码\“:\”,“地点\:”\“,\”组\“:\”,\”RoomMaild\“:\”ExchangeRoomTest2@demo.com\“,”描述\“:\”,”电话\“:\”,”显示名称\“:”ExchangeRoomTest2 \“,”CondecoRoomId \“:0,\”CondecoRoomName \“:\”,”IsMapped \“:false,\”LastSyncTimeLocal \“:\”}]”
};
var keyCount=Object.keys(JSON.parse(jsonObject.d)).length;
console.log(keyCount)
尝试使用
JSON.parse()
而不是
Object.keys()

注意:
jsonObject.d
是一个数组

var jsonObject={“d”:“[{\'Country\':\”,\“CountryCode\:\”,\“Location\:\”,\“Group\:\”,\“RoomMailId\:\”ExchangeRoomTest1@demo.com\“,”描述\“:\”,”电话\“:\”,”显示名称\“:\”,”ExchangeRoomTest1 \“,”CondecoRoomId \“:0,\”CondecoRoomName \“:\”,”IsMapped \“:false,\”LastSyncTimeLocal \“:\”,“{\”国家:“,”国家代码\“:\”、\“位置\“:\”、\“组\“:\”、\“RoomMaild\”:\”ExchangeRoomTest2@demo.com\“,”描述\“:\”,”电话\“:\”,”显示名称\“:”ExchangeRoomTest2 \“,”CondecoRoomId \“:0,\”CondecoRoomName \“:\”,”IsMapped \“:false,\”LastSyncTimeLocal \“:\”}]”;
var keyCount=JSON.parse(jsonObject.d).length

文件。写入(键计数)
d
是一个字符串,而不是已解析的数组

var keyCount  = Object.keys(JSON.parse(jsonObject.d)).length
document.write(keyCount);

此外,请远离
document.write()
——它是过时的,在现代JavaScript中几乎没有任何用处。

要计算JSON对象中的数字键/值对,我们需要转换数组。然后我们可以很容易地计算数组中元素的数量,这与json对象中的数字键-值对相同

key()返回一个数组,其元素是与在对象中找到的可枚举属性相对应的字符串

function countObjectKeys(obj) { 
    return Object.keys(obj).length; 
}

//Usage 
var emp = {"firstName":"John", "lastName":"Doe"};
console.log(countObjectKeys(emp)); //2

计算一个字符串中由
jsonObject.d
持有的字符数,使用
JSON.parse()
将字符串转换为数组没有“JSON对象”这样的东西。您拥有的是一个具有单个属性的对象文本,
d
。此属性包含JSON,即文本/字符串。要将其转换为对象,首先需要解析该JSON字符串。