javascript - 如何在 Node.js 中将 CSV 转换为 JSON

标签 javascript json node.js csv express

我正在尝试将 csv 文件转换为 json。我正在使用。

CSV 示例:

a,b,c,d
1,2,3,4
5,6,7,8
...

所需的 JSON:

{"a": 1,"b": 2,"c": 3,"d": 4},
{"a": 5,"b": 6,"c": 7,"d": 8},
...

我尝试了 node-csv 解析器库。但是输出像数组一样,不像我预期的那样。

我正在使用 Node 0.8 和 express.js,希望获得有关如何轻松完成此任务的建议。

最佳答案

Node.js csvtojson module是一个全面的 nodejs csv 解析器。在 browserifywebpack 的帮助下,它可以用作 node.js 应用程序库/命令行工具/或浏览器。

源代码位于:https://github.com/Keyang/node-csvtojson

它速度快,内存消耗低,但功能强大,可以通过丰富的 API 和易于阅读的文档来支持任何解析需求。

详细文档可见here

以下是一些代码示例:

将其用作 Node.js 应用程序中的库 (csvtojson@2.0.0 +):

  1. 通过npm
  2. 安装

npm install --save csvtojson@latest

  1. 在你的 node.js 应用中使用它:
// require csvtojson
var csv = require("csvtojson");

// Convert a csv file with csvtojson
csv()
  .fromFile(csvFilePath)
  .then(function(jsonArrayObj){ //when parse finished, result will be emitted here.
     console.log(jsonArrayObj); 
   })

// Parse large csv with stream / pipe (low mem consumption)
csv()
  .fromStream(readableStream)
  .subscribe(function(jsonObj){ //single json object will be emitted for each csv line
     // parse each json asynchronousely
     return new Promise(function(resolve,reject){
         asyncStoreToDb(json,function(){resolve()})
     })
  }) 

//Use async / await
const jsonArray=await csv().fromFile(filePath);

将其用作命令行工具:

sh# npm install csvtojson
sh# ./node_modules/csvtojson/bin/csvtojson ./youCsvFile.csv

-或-

sh# npm install -g csvtojson
sh# csvtojson ./yourCsvFile.csv

高级用法:

sh# csvtojson --help

您可以从上面的 github 页面找到更多详细信息。

关于javascript - 如何在 Node.js 中将 CSV 转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16831250/

相关文章:

node.js - "zsh: command not found: sails"的问题

javascript - 如何访问 webkit-fake-url

javascript - 使用 Google Maps API 获取地理位置的区域数据

javascript - JS 脚本调用 PHP 脚本,但我无法处理 html 的 JSON

java - Jersey 对象映射

javascript - 使用 ramda 生成查询字符串

node.js - office-js + outlook-web-addins + Webpack + 生产

javascript - 推送通知适用于 Firefox 但不适用于 Chrome : Required member title is undefined

javascript - typescript - while 循环 for Promise

node.js - 通过 Firebase 在 Google Cloud 中签名错误