Node.JS如何将冒号分隔的测试文件内容转换为指定结构JSON对象
实现代码
你可以直接在文件读取成功的回调中加入如下转换逻辑,完整可运行代码:
const fs = require('fs'); fs.readFile('data.txt', 'utf8', (err, result) => { if (err) { console.log(err); return; } // 核心转换逻辑 const targetArr = result // 按换行拆分所有行 .split('\n') // 过滤空行,避免文件内的空换行干扰处理 .filter(line => line.trim()) .map(line => { // 按冒号拆分字段,同时去除每个字段首尾的双引号和空白字符 const fields = line.split(':').map(item => item.replace(/^"|"$/g, '').trim()); // 按顺序映射为指定结构的对象 return { test: fields[0], value: fields[1], status: fields[2], name: fields[3], log: fields[4] } }) // 输出验证结果,2为缩进空格数 console.log(JSON.stringify(targetArr, null, 2)); // 若需要写入为本地JSON文件,可放开下方注释 // fs.writeFile('output.json', JSON.stringify(targetArr, null, 2), (writeErr) => { // if (writeErr) console.log(writeErr); // }) })
逻辑说明
- 首先将读取到的完整文本按换行符拆分,得到每行内容组成的数组
- 过滤掉数组中的空行,避免示例中两行数据之间的空换行导致处理异常
- 逐行处理:先按冒号分割得到原始字段数组,再用正则去除每个字段首尾可能存在的双引号和多余空白
- 按照字段的顺序,对应映射到你要求的键名,最终组装为指定结构的对象数组
内容的提问来源于stack exchange,提问作者Utkrisht Agrawal
相关产品推荐
相关产品推荐

