如何使用节点js将csv文件转换为json文件?

时间:2018-05-02 20:33:25

标签: json node.js csv

const fs = require('fs');
 const csv =require('fast-csv');
 const path= require('path');
fs.createReadStream('translation.csv')
    .pipe(csv())
    .on('data',function (data) {
        console.log(data);
    })
    .on('end',function (data) {
        console.log('data end');

    })

此代码读取csv文件,但我不知道将谁转换为json文件。任何人请帮助我。

1 个答案:

答案 0 :(得分:0)

我不知道csv的运行速度有多快,但我认为第一个发出的数据是标题,你会想要引用它们,可能就像

const items = [];
// ...
.on(data, data => items.push(data));
// ...
const headers = items.shift();

然后你可以使用像这样的简单算法

// assuming data looks like so
const headers = ['a', 'b'];
const items = [[1, 2], [3, 4]];

const r = [];

for (let i = 0; i < items.length; i++) {
  let obj = {};
  let row = items[i];
    for (let j = 0; j < row.length;j++) {
    obj[headers[j]] = row[j];
   }
   r.push(obj);
}

console.log(r);
console.log(JSON.stringify(r));