[英]Convert a table array to JSON object
我正在研究将表数组转换为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
}
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);
function html2json() {
var json = '{';
var otArr = [];
var tbl2 = $('#dest_table tr').each(function(i) {
x = $(this).children();
var itArr = [];
x.each(function() {
itArr.push('"' + $(this).text() + '"');
});
otArr.push('"' + i + '": [' + itArr.join(',') + ']');
})
json += otArr.join(",") + '}'
return json;
}
不要尝试手动创建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));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.