我正在开发一个将表数组转换为 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
}
最佳答案
- 通过 Array#shift 获取 1 个元素并将其从原始数组中删除
- 然后使用 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/