通常,为了填充Jquery,我们需要将Json ( json对象的数组)赋予datatable,并用一列映射每个字段。但是我有一个json对象,我希望在一个列中显示所有键,并在同一行的下一个逗号中显示它的相关值。
例如,样本json :-
{
"first-name": "Tom",
"last-name": "Hanks",
"Designation": "Developer"
}产出表:-
Key Value
first-name Tom
last-name Hanks
Designation Developer这些键和值的数量在将来可能会有所不同。
一个简单的方法是,我可以遍历对象并将其转换为具有两个属性的对象数组,并用于填充表。但我想知道是否还有其他直接的方法。
发布于 2016-07-26 06:17:56
这似乎适用于您的示例数据:
var data = {
"first-name": "Tom",
"last-name": "Hanks",
"Designation": "Developer"
};
var table = $('#example').DataTable({
"columns": [
{
"data": "key",
"title": "Key"
},
{
"data": "value",
"title": "Value"
}
]
});
for(var key in data) {
if(data.hasOwnProperty(key)) {
table.row.add({
"key": key,
"value": data[key]
});
}
}
table.draw();也许有一个更优雅的解决方案,但作为信封的背面,它似乎很好--也许应该用回电话来完成,不过我认为。你可以看到它在工作,这里。
这是一个使用回调的小得多的方法:
var data = {
"first-name": "Tom",
"last-name": "Hanks",
"Designation": "Developer"
};
var table = $('#example').DataTable({
"columns": [{
"data": "key",
"title": "Key"
},{
"data": "value",
"title": "Value"
}],
"initComplete": function() {
this.api().rows.add(JSON.stringify(data).slice(2, -2).split('","').map((c)=>({
"key": c.split('":"')[0],
"value": c.split('":"')[1]
}))).draw();
}
});https://stackoverflow.com/questions/38566451
复制相似问题