javascript - 将表数组转换为 JSON 对象

标签 javascript

我正在开发一个将表数组转换为 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
}

最佳答案

  1. 通过 Array#shift 获取 1 个元素并将其从原始数组中删除
  2. 然后使用 Array#map构建您的预期结果

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

var properties = myArray.shift();

var result = myArray.map( a => {
  var newObj = {};
  properties.forEach ( (p, idx) => {
    newObj[p] = a[idx];
  });
  return newObj;
})

console.log(result);

关于javascript - 将表数组转换为 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44016804/

相关文章:

javascript - 文本颜色可变为背景颜色

javascript - 如何在算术表达式中编写构造函数?

javascript - 使用jquery获取图像链接的 'src'?

javascript - InDesign javascript 查找重叠文本框

javascript - 如何在 Material-UI AppBar 中水平居中标题

javascript - 按 bool 值和标题对 JSON 进行排序

javascript - 我怎样才能使这个 javascript 更易于阅读、维护和从 OO 背景理解?

javascript - 使用javascript修改firebug dom对象

javascript - 找不到 React JS 模块

Javascript 删除条目数组按钮 OnClick