【发布时间】:2018-02-18 14:03:28
【问题描述】:
我打算从 CSV 文件加载数据并在 Express Router 中发送它作为 JSON 数据。
我的 CSV 文件如下所示:
- 没有标题,
- 我的行分隔符就是 "/n" ,
-
我的价值观在 " "
"2171106","2017-07-03 00:27:24","France","3","Desktop","Mac","Firefox","2170248","77.98" "800309","2017-07-03 03:23:21","France","9","Desktop","GNU/Linux","Safari","2170296","85.39" "805789","2017-07-03 03:34:32","France","1","Tablet","iOS","Mobile Safari","2170299","61.49" "2171167","2017-07-03 04:42:47","France","1","Desktop","Windows","Chrome","2170314","39.99" "2171170","2017-07-03 04:50:02","France","1","Desktop","Windows","Chrome","2170320","20.89" "838601","2017-07-03 05:48:38","France","1","Smartphone","iOS","Mobile Safari","2170323","66.88" "2171173","2017-07-03 06:09:28","France","1","Desktop","Windows","Microsoft Edge","2170407","57.77" "1659566","2017-07-03 06:28:08","France","1","Smartphone","Android","Chrome Mobile","2170416","32.99" "835619","2017-07-03 06:46:00","France","4","Desktop","Windows","Firefox","2170419","203.93" "773872","2017-07-03 06:51:14","France","8","Tablet","iOS","Mobile Safari","2170422","285.79" "2171241","2017-07-03 06:54:30","France","1","Desktop","Mac","Safari","2170425","29.49" "2171238","2017-07-03 07:02:48","France","1","Desktop","Windows","Firefox","2170434","49.95" "1570588","2017-07-03 07:08:09","France","1","Desktop","Windows","Microsoft Edge","2170437","61.06" "2111374","2017-07-03 07:08:21","英国","1","平板电脑","iOS","移动 Safari","2170440","36.58" "1604941","2017-07-03 07:18:38","France","2","Tablet","iOS","Mobile Safari","2170452","30.89" "2095884","2017-07-03 07:25:34","France","1","Tablet","iOS","Mobile Safari","2170458","65.79" "2171259","2017-07-03 07:26:48","France","1","Desktop","Windows","Firefox","2170461","62.67" "860366","2017-07-03 07:30:46","France","1","Desktop","Windows","Chrome","2170464","137.67"
为了更好地展示它,这里是:
我只想将这些数据解析为一个对象,然后在 express 中以 json 格式发送。
我使用了几个库:csvjson、csvtojson、papaparse ... 但每次转换都会出现问题。
这是我的服务器代码:
var express = require("express");
var app = express();
var path = require("path");
var fs = require('fs');
var Converter = require("csvtojson").Converter;
var fileStream = fs.createReadStream("data.csv");
var jsonData;
//new converter instance
var converter = new Converter({constructResult:true});
//end_parsed will be emitted once parsing finished
converter.on("end_parsed", function (jsonObj) {
jsonData = jsonObj
});
fileStream.pipe(converter);
app.get("/list",function(req,res){
res.json(jsonData);
});
app.listen(3000);
console.log("Running at Port 3000");
如您所见,这是完全错误的: 例如,这是第一个输出的元素: 几乎图书馆都以同样错误的方式转换它,我认为我的代码中有一个 missing config。 (表格可能会分行)
有什么建议吗??
【问题讨论】:
-
你能准确描述一下它有什么问题吗?只是hte标签错了吗?
-
你需要通过简单的 npm install --save csvtojson@latest stackoverflow.com/questions/16831250/…来安装包 csvtojson
-
@Legman : 我添加了错误转换数据示例的快照
-
@headmax 同样的问题
-
尝试在线转换您的 CSV 以显示结果并放入验证器 json csvjson.com/csv2json jsonformatter.curiousconcept.com
标签: javascript json node.js csv express