我正在尝试将 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 解析器。在 browserify
或 webpack
的帮助下,它可以用作 node.js 应用程序库/命令行工具/或浏览器。
源代码位于:https://github.com/Keyang/node-csvtojson
它速度快,内存消耗低,但功能强大,可以通过丰富的 API 和易于阅读的文档来支持任何解析需求。
详细文档可见here
以下是一些代码示例:
将其用作 Node.js 应用程序中的库 (csvtojson@2.0.0 +):
- 通过
npm
安装
npm install --save csvtojson@latest
- 在你的 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/