如何遍历mani.json文件中的JSON对象集合?
遍历mani.json对象集合的实现方案
没问题,我来帮你搞定遍历mani.json里工件对象的需求!首先得提个重要的小细节:你给出的示例内容其实不是标准的JSON格式——多个对象直接并列会导致解析工具报错,正确的做法是把所有对象放在一个数组里,也就是用[]包裹起来,我先给你修正后的合法格式:
[ { "art_src_path": "source/subdir/hi-there.txt","art_id": "6945-L9.txt","art_date": "2018:03:10 01:10:33"}, { "art_src_path": "source/hello-world.txt","art_id": "10426-L13.txt","art_date": "2018:03:10 01:10:33"}, { "art_src_path": "source/subdir/testfile.txt","art_id": "50518-L66.txt","art_date": "2018:03:10 01:10:33"} ]
下面给你两种最常用语言的实现方法:
Python 实现
Python自带的json模块就能轻松搞定,代码简单直观:
import json # 读取并解析JSON文件 with open('mani.json', 'r', encoding='utf-8') as f: artifacts = json.load(f) # 逐个遍历每个工件对象 for art in artifacts: # 这里可以替换成你需要的业务逻辑,比如存储、分析等 print(f"工件ID: {art['art_id']}") print(f"源文件路径: {art['art_src_path']}") print(f"创建日期: {art['art_date']}") print("---")
这段代码会把JSON数组加载成Python列表,然后循环遍历列表里的每个字典对象,你可以根据需求修改print部分的逻辑,比如写入数据库或者生成报告。
Node.js 实现
如果你用JavaScript在Node.js环境下处理,不用额外装依赖,内置模块就能解决:
const fs = require('fs'); // 异步读取文件(推荐,不阻塞主线程) fs.readFile('mani.json', 'utf8', (err, data) => { if (err) { console.error('读取文件时出错:', err); return; } const artifacts = JSON.parse(data); // 遍历所有工件对象 artifacts.forEach(art => { console.log(`工件ID: ${art.art_id}`); console.log(`源文件路径: ${art.art_src_path}`); console.log(`创建日期: ${art.art_date}`); console.log('---'); }); });
如果是简单的脚本场景,也可以用同步读取的方式:
const fs = require('fs'); try { const artifacts = JSON.parse(fs.readFileSync('mani.json', 'utf8')); artifacts.forEach(art => { // 自定义处理逻辑 console.log(`${art.art_id} -> ${art.art_src_path}`); }); } catch (err) { console.error('处理失败:', err); }
额外提示
如果你的原始mani.json确实是多个独立对象直接并列(非数组格式),可以先通过字符串处理转换成合法数组:比如读取整个文件内容后,在开头加[、结尾加],并在每个对象之间补上逗号。不过更推荐直接修正JSON文件的格式,这是最稳妥、不易出错的方式。
内容的提问来源于stack exchange,提问作者Rachayita Giri
相关产品推荐
相关产品推荐

