3

我需要引入一个 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
    }
  ]
}
4

5 回答 5

5

只需使用JSON.stringify()将您的数组转换为 json 字符串

var jsonString = JSON.stringify(yourArray);
于 2013-10-09T04:05:59.137 回答
3

在将该索引推送到最终/主对象之前,您需要声明这些值并将其推送到 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
}
于 2013-10-09T04:05:23.807 回答
0

脚本是在 JavaScript 中将数组转换为 JSON 的常用方法。

于 2013-10-09T03:53:22.380 回答
0

使用此代码并非常简单地开发更多两个数组

function getJSON(arrayID,arrayText) {    
    var JSON = "[";
    //should arrayID length equal arrayText lenght and both against null
    if (arrayID != null && arrayText != null && arrayID.length == arrayText.length) {
        for (var i = 0; i < arrayID.length; i++) {
            JSON += "{";
            JSON += "text:'" + arrayText[i] + "',";
            JSON += "id:'" + arrayID[i] + "'";
            JSON += "},";
        }
    }
    JSON += "]"
    JSON = Function("return " + JSON + " ;");
    return JSON();
}

和 3 个数组

function getJSON(arrayID, arrayText, arrayNumber) {
    var JSON = "[";  
    if (arrayID != null && arrayText != null && arrayNumber!=null && Math.min(arrayNumber.length,arrayID.length)==arrayText.length) {
        for (var i = 0; i < arrayID.length; i++) {
            JSON += "{";
            JSON += "text:'" + arrayText[i] + "',";
            JSON += "id:'" + arrayID[i] + "',";
            JSON += "number:'" + arrayNumber[i] + "'";
            JSON += "},";
        }
    }
    JSON += "]"
    JSON = Function("return " + JSON + " ;");
    return JSON();
}
于 2014-07-21T09:41:52.053 回答
0

我不喜欢这样的答案,但我认为这项服务足以保证它。它可以在各种数据格式之间进行转换,包括 CSV、JSON、XML、HTML 表格等。它甚至为某些格式提供了输出结构的变化。

于 2013-10-09T04:15:29.967 回答