我有一个csv文件,看起来像这样:
求和,Anne,mois
2732,2002,1
1030,2002,2
1661,2002,7
1450,2002,3
1308,2002,4
2131,2002,5
2891,2002,6
2748,2002,8
2140,2002,9
1499,2002,10
1211,2002,11
1398,2002,12
5376,2003,1
2780,2003,2
1927,2003,3
2266,2003,4
3670,2003,5
4071,2003,6
4764,2003,7
5261,2003,8
我想使这个CSV文件像这样的json数据序列化:
年度数据按月排序
{
"2002": [
1, //January
22, //February
33,
44,
345,
45,
232,
43423,
324324,
324324,
324324,
6556
],
"2003": [
3.5,
4,
4.3,
6.6,
11.7,
13.2,
16.2,
16.5,
12.7,
8.4,
5,
5.3
]
}
我正在尝试使用Javascript将此csv转换为json,编写了许多正则表达式,但是都失败了,我发现我必须非常仔细地考虑此csv文件的顺序,它太复杂了,有人可以帮助我吗?请
最佳答案
function parseCSV(data, rowSeperator) {
var rows = data.split(rowSeperator || '\n');
var json = {};
rows.slice(1).forEach(function (row) {
var columns = row.split(',');
var sum = parseInt(columns[0]||0, 10)
var year = parseInt(columns[1], 10);
var month = parseInt(columns[2], 10);
if (year && month) {
json[year] = json[year] || [];
json[year][month-1] = sum;
}
});
return json;
}
var json = parseCSV(csvData);
http://jsfiddle.net/qug4thb9/