将数组转换为JSON

时间:2013-10-09 03:48:24

标签: javascript jquery arrays json csv

我需要引入一个csv doc并将其转换为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
    }
  ]
}

5 个答案:

答案 0 :(得分:4)

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

var jsonString = JSON.stringify(yourArray);

答案 1 :(得分: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
}

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分: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();
}