【问题标题】:Convert csv to json returning empty json file将 csv 转换为 json 返回空的 json 文件
【发布时间】:2020-07-16 19:24:35
【问题描述】:

我正在尝试使用来自 npm 的 convert-csv-to-json 包将 csv 文件转换为 json。我能够从 url 获取 csv 并创建“data.csv”,但相应的 json 文件只是一个空数组。我是在调用错误的文件路径,还是有一些 js 怪癖与我缺少的承诺。我对 js 很陌生。


const csvToJson = require('convert-csv-to-json');
const fs = require("fs");
const https = require("https");
const file = fs.createWriteStream("data.csv");



https.get("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_US.csv", response => {
  var stream = response.pipe(file);

  stream.on("finish", function() {
    console.log("done");
  });
});



const input = './data.csv'; 
const output = './data.json';

csvToJson.fieldDelimiter(',')
         .formatValueByType()
         .generateJsonFileFromCsv(input, output);

【问题讨论】:

    标签: javascript node.js json csv


    【解决方案1】:

    Javascript 是异步的。试试下面的代码。

    const csvToJson = require('convert-csv-to-json');
    const fs = require("fs");
    const https = require("https");
    const file = fs.createWriteStream("data.csv");
    const input = './data.csv'; 
    const output = './data.json';
    
    
    
    https.get("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_US.csv", response => {
      var stream = response.pipe(file);
    
      stream.on("finish", function() {
        console.log("done");
        csvToJson.fieldDelimiter(',')
         .formatValueByType()
         .generateJsonFileFromCsv(input, output);
      });
    

    });

    【讨论】: