我试图读取我的.CSV文件,并使用npm' s csvtojson
输出.json文件我使用以下代码:
//Converter Class
var Converter = require("csvtojson").Converter;
var converter = new Converter({});
var fs = require("fs");
//end_parsed will be emitted once parsing finished
converter.on("end_parsed", function (jsonArray) {
console.log(jsonArray); //here is your result jsonarray
});
fs.createReadStream('data.csv')
.pipe(csv2json({
// Defaults to comma.
separator: '|'
}))
.pipe(fs.createWriteStream('dataOut.json'));
但是,我遇到了错误" csv2json未定义"
有人知道我为什么会遇到这个错误,尽管包括" csvtojson"在第一行?
答案 0 :(得分:1)
cvs2json
在代码中的任何位置 都未定义。 cvs2json
(来自https://github.com/julien-f/csv2json)的套用示例是:
var csv2json = require('csv2json');
var fs = require('fs');
fs.createReadStream('data.csv')
.pipe(csv2json({
// Defaults to comma.
separator: ';'
}))
.pipe(fs.createWriteStream('data.json'));
所以简单的答案是将第一行更改为var csv2json = require('csv2json');
。但是,这会导致您尝试触发end_parse
事件时出错。要收听该事件,请使用节点流事件:
var stream = fs.createReadStream('data.csv')
.pipe(csv2json({
// Defaults to comma.
separator: '|'
}));
stream.on('end', function (jsonArray) {
console.log(jsonArray); //here is your result jsonarray
});
stream.pipe(fs.createWriteStream('dataOut.json'));