Javascript 制表器中的嵌套对象数组

Javascript 制表器中的嵌套对象数组,javascript,arrays,json,tabulator,Javascript,Arrays,Json,Tabulator,我正试图让嵌套对象数组与tablator配合使用 这是json数据的结构: [ { "id": 1, "name": "Test 01", "books": [ { "number": "0254", "details": [ { "var1": "Testdata", "var

我正试图让嵌套对象数组与tablator配合使用

这是json数据的结构:

[
      {
        "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所建议的那样