我正在使用BabyParse将本地CSV文件转换为JSON。这是我编写的js
文件:
var Baby = require('babyparse');
var fs = require('fs');
var file = 'test2.csv';
var content = fs.readFileSync(file, { encoding: 'binary' });
parsed = Baby.parse(content, {fastMode: false});
rows = parsed.data;
console.log(rows);
fs.writeFile("blahblahblah.json", rows, function(err) {
if(err) {
return console.log(err);
}
console.log("The file was saved!");
});
console.log(rows)
行输出到控制台的JSON似乎正确。但是,当我将rows
写入文件时,所有JSON样板都消失了。例如,这是尝试转换以下csv文件时得到的信息:col1,col2,col3
"val1","val2","val3"
"val1","val2","val3"
"val1","val2","val3"
这是打印到控制台的内容:
[ [ 'col1', 'col2', 'col3' ],
[ 'val1', 'val2', 'val3' ],
[ 'val1', 'val2', 'val3' ],
[ 'val1', 'val2', 'val3' ],
[ '' ] ]
但这是写入文件的内容:
col1,col2,col3,val1,val2,val3,val1,val2,val3,val1,val2,val3,
有人知道这里发生了什么吗?为什么要删除特定于JSON的语法?
最佳答案
您需要先将json转换为字符串,然后再保存。
rows = JSON.stringify(parsed.data);