如何为未知的 JSON 数据自动添加制表列设置
how to add tabulator columns setting automatically for unkown JSONData
我是新开发人员,我有一个 Json object,我不知道它是我需要添加到 Tabulator
的内容
根据定义,我需要为每一列添加详细信息,例如:
var JSONData =[{A:12,B:3,C:13},{A:5,B:23,C:3},{A:1,B:30,C:103}]
var tabulator1 = new Tabulator("#table", {
data:JSONData,
columns:[
{title:"A", field:"A", sorter:"string",align:"right", editor:true},
{title:"B", field:"B", sorter:"string",align:"right", editor:true},
{title:"C", field:"C", sorter:"string",align:"right", editor:true},
],
});
它现在正在工作,但是如果 var JSONData =[UNKNOWN LIST OF JSON DATA ]
我知道如何通过 Object.keys(JSONData[0]));
获得 headers 列
我可以像这样保留列的默认定义
{title:"A", field:"A", sorter:"string",align:"right", editor:true},
但是我如何遍历未知的 JSONData 并将其附加到 columns:[]
?
我可能只需要至少添加标题和字段数据以使制表符正常工作
另一种解决方案:我可以使用 flask-jinja2 从后端循环它,但我不想尽可能依赖服务器资源。
这个解决方案对我有用。
如果数组中的所有元素都具有相同数量的键,这将起作用。
var JSONData =[{A:12,B:3,C:13},{A:5,B:23,C:3},{A:1,B:30,C:103}]
var tabulator1 = new Tabulator("#table", {
data:JSONData,
columns:Object.keys(JSONData[0]).map(obj => {
return {
title: obj,
field: obj,
sorter: "string",
align: "right",
editor: true
};
});
});
我是新开发人员,我有一个 Json object,我不知道它是我需要添加到 Tabulator
的内容根据定义,我需要为每一列添加详细信息,例如:
var JSONData =[{A:12,B:3,C:13},{A:5,B:23,C:3},{A:1,B:30,C:103}]
var tabulator1 = new Tabulator("#table", {
data:JSONData,
columns:[
{title:"A", field:"A", sorter:"string",align:"right", editor:true},
{title:"B", field:"B", sorter:"string",align:"right", editor:true},
{title:"C", field:"C", sorter:"string",align:"right", editor:true},
],
});
它现在正在工作,但是如果 var JSONData =[UNKNOWN LIST OF JSON DATA ]
我知道如何通过 Object.keys(JSONData[0]));
获得 headers 列
我可以像这样保留列的默认定义
{title:"A", field:"A", sorter:"string",align:"right", editor:true},
但是我如何遍历未知的 JSONData 并将其附加到 columns:[]
?
我可能只需要至少添加标题和字段数据以使制表符正常工作
另一种解决方案:我可以使用 flask-jinja2 从后端循环它,但我不想尽可能依赖服务器资源。
这个解决方案对我有用。 如果数组中的所有元素都具有相同数量的键,这将起作用。
var JSONData =[{A:12,B:3,C:13},{A:5,B:23,C:3},{A:1,B:30,C:103}]
var tabulator1 = new Tabulator("#table", {
data:JSONData,
columns:Object.keys(JSONData[0]).map(obj => {
return {
title: obj,
field: obj,
sorter: "string",
align: "right",
editor: true
};
});
});