Node.js如何统计JSON文件父数组包含的直接子数组数量
Node.js统计matches.json直接子数组数量实现
核心逻辑
你需要统计的是JSON根数组下的第一层直接子数组总数,不需要递归处理深层嵌套内容,针对你给出的matches.json内容,最终统计结果固定为2。
实现步骤非常直接:
- 读取本地
matches.json文件内容 - 把JSON格式字符串解析成JavaScript可操作的数组对象
- 遍历根数组的每一项,判断当前项是否为数组类型,累加计数即可
可直接运行的代码
把下面代码保存为和matches.json同目录的js文件,用Node.js运行即可得到结果:
const fs = require('fs'); const path = require('path'); // 拼接matches.json的绝对路径 const targetFile = path.join(__dirname, 'matches.json'); try { // 读取并解析JSON文件 const rawContent = fs.readFileSync(targetFile, 'utf8'); const rootData = JSON.parse(rawContent); // 先校验根节点格式是否符合预期 if (!Array.isArray(rootData)) { throw new Error('matches.json根节点不是数组结构,不符合数据格式要求'); } // 统计直接子数组数量 let count = 0; rootData.forEach(item => { if (Array.isArray(item)) count++; }); console.log('根节点直接子数组总数:', count); // 对应你提供的matches.json,此处输出为2 } catch (e) { console.error('执行出错:', e.message); }
注意事项
- 你给出的
matches.json示例内容里存在数组末尾多余的尾逗号,这不符合标准JSON语法规范,运行代码前要把这些多余的逗号删掉,否则会触发JSON解析错误 - 运行脚本时直接在终端执行
node 你保存的脚本文件名.js即可看到输出结果 - 该逻辑仅统计根节点下的第一层直接子数组,不会递归统计子数组内部嵌套的数组,完全匹配你的需求
内容的提问来源于stack exchange,提问作者ANSHUMAN MISHRA
相关产品推荐
相关产品推荐

