我需要引入一个csv文档并将其转换为JSON,到目前为止,我已经能够将其转换为一个数组,并且正在尝试从该数组中构建JSON对象。

下面是构建JSON的JavaScript,但它不在我需要的结构中,下面是所需结构的示例。

var jsonObj = []; //declare object

for (var i=1;i<csvAsArray.length;i++) {
  jsonObj.push({key: csvAsArray[i][0]}); //key

    for (var l=1;l<csvAsArray[0].length;l++) {
      jsonObj.push({label: csvAsArray[0][l], values: csvAsArray[i][l]}); //label + value respectively
    }
}

所需的最终输出:
{
  "key": "Sample 01",
  "values": [
    {
      "label" : "Something" ,
      "value" : 1
    } ,
    {
      "label" : "Something" ,
      "value" : 2
    }
  ]
},
{
  "key": "Sample 02",
  "values": [
    {
      "label" : "Something" ,
      "value" : 5
    } ,
    {
      "label" : "Something" ,
      "value" : 4
    }
  ]
}

最佳答案

您需要声明值并将其压入tmp变量,然后再将索引压入最终对象/主对象

var tmp_values, jsonObj = []; //declare object

for (var i=1;i<csvAsArray.length;i++) {
    var tmp_values = [];
    for (var l=1;l<csvAsArray[0].length;l++) {
        tmp_values.push({label: csvAsArray[0][l], value: csvAsArray[i][l]}); //label + value respectively
    }
    jsonObj.push({key: csvAsArray[i][0], values: tmp_values}); //key
}

09-30 15:58