首页 > 解决方案 > 使用 node-csvtojson 的最后一个 json 数组条目的尾随逗号错误 - JSON 无效

问题描述

我目前正在尝试流式传输一个非常大的 CSV 文件(130k 行)以转换为 JSON 文件。然后我可以稍后对其进行迭代。

问题是csvtojson在最后一个条目中添加了一个逗号,使其无法处理 JSON。

var Converter = require("csvtojson").Converter;

var csvConverter = new Converter({
    constructResult: false,
    downstreamFormat: "array"
});

var readStream = require("fs").createReadStream(req.file.path);

var writeStream = require("fs").createWriteStream("csvData.json");

readStream
    .pipe(csvConverter)
    .subscribe((jsonObj, index) => {
           jsonObj.myNewKey = "some value";
    })
    .pipe(writeStream);

但是添加到数组的最后一个 JSON 在末尾添加了一个额外的逗号,从而创建了一个无效的数组/json。

结果是这样的:

[
  {Name: Bob},
  {Name: Sarah},
  {Name: James},
]

预期结果如:

[
  {Name: Bob},
  {Name: Sarah},
  {Name: James}
]

我怎么能确保它不会在最后一个条目上添加逗号?干杯

标签: javascriptnode.jsjsoncsvtojson

解决方案


推荐阅读