Javascript 制表器中的嵌套对象数组
我正试图让嵌套对象数组与tablator配合使用 这是json数据的结构:Javascript 制表器中的嵌套对象数组,javascript,arrays,json,tabulator,Javascript,Arrays,Json,Tabulator,我正试图让嵌套对象数组与tablator配合使用 这是json数据的结构: [ { "id": 1, "name": "Test 01", "books": [ { "number": "0254", "details": [ { "var1": "Testdata", "var
[
{
"id": 1,
"name": "Test 01",
"books": [
{
"number": "0254",
"details": [
{
"var1": "Testdata",
"var2": "XXX"
}
],
"detail02": [
{
"name": "Data 01",
"value": "5645"
},
{
"name": "Data 02",
"value": "5125"
},
]
}
]
}
]
通常我可以通过制表器设置数据,如下所示:
columns:[
{title:"Number", field:"id"},
{title:"Name", field:"name"},
{title:"Books Number", field:"books.number"}
],
但是,
books.number
不起作用。有人能给我一个如何处理的提示吗?我想问题是图书作为数组,请让图书对象它可以工作
var tabledata=[{
“id”:1,
“名称”:“测试01”,
“书籍”:{
“编号”:“0254”,
“详情”:[{
“var1”:“Testdata”,
“var2”:“XXX”
}],
“详情02”:[{
“名称”:“数据01”,
“值”:“5645”
},
{
“名称”:“数据02”,
“值”:“5125”
},
]
}
}];
var table=新制表器(“示例表”{
数据:tabledata,
布局:“fitColumns”,
栏目:[{
标题:“编号”,
字段:“id”
},
{
标题:“姓名”,
字段:“名称”
},
{
书名:“书号”,
字段:“books.number”
}
],
});代码>
我正在尝试一种不同的方法。tablator获得了从普通html表中获取数据的函数
我现在用递归函数填充一个表。问题是,
针对每个对象打印,而不是一次。此外,我无法将一个对象中的所有数据插入tr
这就是我现在得到的:
var table = document.createElement("table");
table.setAttribute('id', 'example-table');
var tr = table.insertRow(-1);
function printValues(obj) {
for(var k in obj) {
if(obj[k] instanceof Object) {
var th = document.createElement("th");
th.textContent = Object.keys(obj[k]);
tr.appendChild(th);
printValues(obj[k]);
} else {
var data_row = table.insertRow(-1);
var tabCell = data_row.insertCell(-1);
tabCell.textContent = obj[k];
}
}
};
printValues(json);
var divContainer = document.getElementById("table-holder");
divContainer.innerHTML = "";
divContainer.appendChild(table);
books是包含带有键值的obj的数组注意:此功能仅适用于嵌套对象,不能用于数组。请尝试更改json对象的结构您是否尝试过books[0]。number
我已经尝试过books[0]。number
但不起作用。问题是我不能改变我得到的json数据。结构是预定义的。感谢您的评论。不幸的是,我得到的数据结构是预先定义的。我可以重新排列它,但我仍然需要能够访问阵列中的所有信息。为了更清楚地说明这个示例,我还需要访问details
中的var1
或detail02
中的数据,如果数据包含在数组中,则无法以您想要的方式解析数据,tablator根本不是这样构建的。您需要将数据映射到制表器可以理解的格式,正如Jay所建议的那样