我正在尝试将换行符分隔的 JSON 文件转换为 CSV(这是一项愚蠢的任务,但没关系),我很好奇如何在node.js中轻松做到这一点。到目前为止,我所拥有的是,
var csv = require('csv'),
fs = require('fs'),
JSONStream = require('JSONStream');
var stream = fs.createReadStream('input.json', {encoding: 'utf8'})
.pipe(JSONStream.parse());
csv().from(stream).to('out.csv');
这可行,但不能让我表达对键的排序。例如,如果我有这样的输入文件,
{"foo": 1, "bar": 2}
{"bar": 3, "foo": -1}
我想添加一个变压器功能,
function(line_object) { return [line_object.foo, line_object.bar]; };
这样我的输出将是 lines1, 2
和-1, 3
,对应于foo
第 1 列和bar
第 2 列,而不是当前行为1, 2
and 3, -1
。
但是,所有在线示例对于添加转换器似乎都相当冗长。他们似乎创建了require('stream').Transform
对象,然后_transform
在这些对象上设置了函数。问题:有没有更清洁/更简洁的方法来做到这一点?非常感谢,请原谅我的无知,因为这几乎是node.js
我编写的第一个代码。