首页 > 解决方案 > 将 csv 转换为 json 返回空的 json 文件

问题描述

我正在尝试使用来自 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);

标签: javascriptnode.jsjsoncsv

解决方案


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

});


推荐阅读