JavaScript如何遍历嵌套JSON子元素并获取指定key(如id)的值
实现方法
你已经完成了第一层动态键的遍历,只需要在第一层遍历逻辑内,对拿到的第二层对象再做一次自有属性遍历,就能拿到foo、bar这类动态命名的子节点,由于id是固定存在的字段,直接读取对应属性值即可。
修改后的完整请求代码
setInterval(function () { fetch(<url>) .then(function (response) { return response.json(); }) .then(function (json) { // 遍历第一层动态UUID键 for (var firstLevelKey in json) { if (!json.hasOwnProperty(firstLevelKey)) continue; const secondLevelMap = json[firstLevelKey]; // 遍历第二层动态节点(foo/bar这类键名不固定的节点) for (var nodeKey in secondLevelMap) { if (!secondLevelMap.hasOwnProperty(nodeKey)) continue; const currentNode = secondLevelMap[nodeKey]; // 读取固定存在的id字段,打印结果 console.log(currentNode.id); } } }) }, 2000);
运行效果
代码执行后控制台会按顺序输出你期望的结果:
31971 23456
补充说明
如果后续需要读取start time这类带空格的固定键,不能用点语法取值,要改用方括号语法,写法为currentNode["start time"];读取client这类无特殊字符的键,既可以用currentNode.client,也可以用方括号语法。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

