Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何编写适当的算法来序列化这种特殊格式的json数据_Javascript_Json - Fatal编程技术网

Javascript 如何编写适当的算法来序列化这种特殊格式的json数据

Javascript 如何编写适当的算法来序列化这种特殊格式的json数据,javascript,json,Javascript,Json,我有一个csv文件,如下所示: 光影 27322002,1 10302002,2 16612002,7 14502002,3 13082002,4 21312002,5 28912002,6 2748202,8 21402002,9 14992002,10 12112002,11 13982002,12 53762003,1 27802003,2 19272003,3 22662003,4 36702003,5 40712003,6 47642003,7 52612003,8 我想使此CSV文件

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

光影

27322002,1

10302002,2

16612002,7

14502002,3

13082002,4

21312002,5

28912002,6

2748202,8

21402002,9

14992002,10

12112002,11

13982002,12

53762003,1

27802003,2

19272003,3

22662003,4

36702003,5

40712003,6

47642003,7

52612003,8

我想使此CSV文件成为json数据序列化,如下所示: 年度数据按月排序

我尝试用JavaScript把这个CSV转换成JSON,编写多种正则表达式,但都失败了,我发现我必须仔细考虑这个CSV文件的序列,太复杂了,有人能帮我吗?请


告诉我们你试过什么代码我还是没有一个好主意…非常感谢!我测试了代码,很好。但是我有一个建议,也许第二行应该是:var rows=data.toString.splitrowspeparator | |'\n';
{
        "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
        ]
}
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);