javascript - 统计json对象的记录
问题描述
我正在尝试计算 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
解决方案
d
是一个字符串,而不是一个已解析的数组。
var keyCount = Object.keys(JSON.parse(jsonObject.d)).length
document.write(keyCount);
此外,远离document.write()
- 它是过时的,在现代 JavaScript 中几乎没有用处。
推荐阅读
- batch-file - 为什么当我乘以 2 个数字时,我的程序批量给我错误的数字?
- swift - 将十六进制字符串作为二进制数据写入新的 .mid 文件
- flowtype - 流 - “记住”如果 X 是真实的,Y 必须是真实的
- angular - 检测本地存储更改并在页面上显示而无需重新加载
- elasticsearch - Elasticsearch:查询以搜索字段是否根本不存在,不应匹配 [](空数组字段)
- octobercms - 如何在博客插件上做规范网址?
- javascript - 如何使用基本 JavaScript 将数组中的数据插入 HTML
- javascript - `T` 缺少类型注释
- javascript - Puppeteer:从网站获取 localStorage
- java - 为什么 lombok @sl4j 注释不使用或检测资源文件夹下的 logback.groovy?