在JavaScript中将CSV文件正确解析为JSON文件

时间:2018-12-08 04:08:46

标签: javascript reactjs csv papaparse csvtoarray

我有一个CSV文件,我想使用PapaParse对其进行解析。如何正确执行此操作?

我到目前为止:

Papa.parse(fileInput, {
    download: true,
    complete: function(results) {
        console.log(results.data);
        console.log(results.errors);
    }
});     

但是,还有更好的方法吗?这是获取错误的正确方法吗?该文档没有强调下载:是真的还是什么,所以我想知道这里是否有有关此主题的专家。

编辑:另外,我是否想进一步用papacsv解析文件或以反应的方式进行处理。例如,如果我的数据文件中有多个具有相似名称引用的数组。我最初是否应该以某种方式解析文件,以便将所有这些引用分组在一起,我将如何去做?

例如

日期,名称,胜利/失败

我想将所有获奖者归为一类。我该怎么办?

2 个答案:

答案 0 :(得分:0)

您正在使用Papa解析的方法用于远程CSV

download: true用于下载远程文件。

通过使用Papa解析,这是使用解析结果对象获取错误,数据和元数据的唯一方法。

答案 1 :(得分:0)

//If(header:true)
var data = [
	{
    "date": "8/12/2018",
		"name": "foo",
		"win/loose": "win"
	},
	{
    "date": "8/12/2018",
		"name": "foo",
		"win/loose": "loose"
	},
  {
    "date": "8/12/2018",
		"name": "foo1",
		"win/loose": "win"
	},
];
var winners = data.filter(d => d['win/loose'] == 'win');
console.log(winners);
//If you want to group winners and losers then:
var grouped = data.reduce(function(acc, co) {
  var key = co['win/loose'];
  if(!acc[key]) {
    acc[key] = [];
  }
  acc[key].push(co);
  return acc;
}, {});
console.log(grouped);

这将为您提供从提取的数据中分离出来的优胜者阵列。