【问题标题】:Writing generated JSON to file, BabyParse将生成的 JSON 写入文件,BabyParse
【发布时间】:2017-09-13 15:32:58
【问题描述】:

我正在使用 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 似乎是正确的(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 特定的语法?

【问题讨论】:

    标签: javascript json node.js csv


    【解决方案1】:

    你需要在保存之前将你的json转换成字符串。

    rows = JSON.stringify(parsed.data);
    

    【讨论】:

      【解决方案2】:

      这应该可以解决问题!

      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!");
          }); 
      

      【讨论】:

        猜你喜欢
        • 2016-04-13
        • 2023-04-03
        • 1970-01-01
        • 2012-11-13
        • 1970-01-01
        • 1970-01-01
        • 2020-12-12
        • 1970-01-01
        相关资源
        最近更新 更多