将表数组转换为 JSON 对象

摩才

我正在研究将表数组转换为 JSON 的函数,这是我的代码。我已经检查过 strJSON 是我想要的 JSON 格式,但它是一个字符串而不是一个 JSON 对象。当我尝试使用“eval”将其转换为 JSON 时,会出现一条错误消息提示“Darren 未定义”。我不知道发生了什么。

var myArray=[["Name","Age","Gender"],["Darren",31,"Male"],["Gakki",25,"Female"]];

//expected output
var myJSON=[{"Name":"Darren","Age":31,"Gender":"Male"},{"Name":"Gakki","Age":25,"Gender":"Female"}];

function convertJSON(tableData){
    var objJSON=[];
    var strJSON=[];
    tableData.forEach(function(rowData,i){
        if (i==0){
            rowData.forEach(function(cellData){
                head.push(cellData);
            });
        }
        else{
            var objData=[];
            var objEntry=[];
            rowData.forEach(function(cellData,j){
                 objData=head[j] + ":" + cellData;
                objEntry.push(objData);
             });
            strJSON.push("{" + objEntry + "}");
        }
    });
    objJSON=eval("[" + strJSON + "]");
    return objJSON
}
安德鲁R

不要尝试手动创建 JSON 字符串。将一个普通对象放在一起并用于JSON.stringify转换。

var myArray=[["Name","Age","Gender"],["Darren",31,"Male"],["Gakki",25,"Female"]];

//expected output
var myJSON=[{"Name":"Darren","Age":31,"Gender":"Male"},{"Name":"Gakki","Age":25,"Gender":"Female"}];

function convertJSON(tableData){
    var keys = tableData[0],
        objects = [];
        
    for(var i = 1; i < tableData.length; i++){
        var rowObject = {};
        tableData[i].forEach(function(item, index){
            rowObject[keys[index]] = item;
        });
        objects.push(rowObject);
    }
    
    return JSON.stringify(objects);
}

document.write(convertJSON(myArray));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章