如何编写适当的algorithem序列化这种特殊格式的json数据?

时间:2015-05-15 09:32:10

标签: javascript json

我有一个csv文件,如下所示:

photoSum,ANNEE,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文件的顺序,这太复杂了,有人可以帮助我吗?请

1 个答案:

答案 0 :(得分:0)

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/