Javascript 统计json对象的记录
我试图统计JSON对象中的记录。计数不正确 代码Javascript 统计json对象的记录,javascript,json,Javascript,Json,我试图统计JSON对象中的记录。计数不正确 代码 var jsonObject = {"d":"[{\"Country\":\"\",\"CountryCode\":\"\",\"Location\":\"\",\"Group\":\"\",\"RoomMailId\":\"Ex
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字符串。