写作生成的JSON提交,Babyparse



我正在使用babyparess将本地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似乎是正确的(ISH(。但是,当我将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);

这应该做到!

fs.writeFile("blahblahblah.json", JSON.stringify(Baby.parse(content, {fastMode: false}).data), function(err) {
        if(err) {
            return console.log(err);
        }
        console.log("The file was saved!");
    }); 

最新更新