Node.js解析JSONL文件后无法访问属性,如何生成XLS文件?
解决JSONL文件解析与XLS导出问题
我用Chrome扩展从网站提取数据,导出为JSONL格式,现在要转成XLS,用了Node.js的export-from-json库,但卡在JSONL解析环节。当前代码逐行读取文件后直接把每行字符串推入数组,导致无法用点符号访问对象属性,没法生成XLS。JSONL每行结构是{"info1":"detail", "info2":"detail", "info3": ["xys"], "info4": ["123456"]}。
问题根源
你只是将每行的字符串内容存入了数组,而非解析成可操作的JavaScript对象,自然无法通过点符号访问属性。
修复方案
在将每行内容推入数组前,用JSON.parse()把JSON字符串转换为对象:
修改循环部分的代码:
for await (const line of readline){ // 解析每行JSON字符串为JS对象 const product = JSON.parse(line) products.push(product) }
此时products数组中的元素都是标准对象,你可以通过product.info1、product.info3[0]这类方式获取对应属性值。
容错处理(可选)
如果JSONL文件可能存在格式错误的行,建议添加错误捕获避免程序崩溃:
for await (const line of readline){ try { const product = JSON.parse(line) products.push(product) } catch (err) { console.error(`解析行失败: ${line}`, err) } }
后续导出XLS
解析完成后,即可正常使用export-from-json生成XLS文件:
// 配置导出选项 const exportOptions = { fileName: '产品数据', type: 'xls' } // 执行导出 exportJSON({ data: products, ...exportOptions })
内容的提问来源于stack exchange,提问作者newbiedev
相关产品推荐
相关产品推荐

