首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用键和值作为列从json对象填充datatable

如何使用键和值作为列从json对象填充datatable
EN

Stack Overflow用户
提问于 2016-07-25 11:23:28
回答 1查看 7K关注 0票数 1

通常,为了填充Jquery,我们需要将Json ( json对象的数组)赋予datatable,并用一列映射每个字段。但是我有一个json对象,我希望在一个列中显示所有键,并在同一行的下一个逗号中显示它的相关值。

例如,样本json :-

代码语言:javascript
复制
 {
"first-name": "Tom",
"last-name": "Hanks",
"Designation": "Developer"
 }

产出表:-

代码语言:javascript
复制
             Key          Value

            first-name    Tom
            last-name     Hanks
            Designation  Developer

这些键和值的数量在将来可能会有所不同。

一个简单的方法是,我可以遍历对象并将其转换为具有两个属性的对象数组,并用于填充表。但我想知道是否还有其他直接的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-26 06:17:56

这似乎适用于您的示例数据:

代码语言:javascript
复制
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();

也许有一个更优雅的解决方案,但作为信封的背面,它似乎很好--也许应该用回电话来完成,不过我认为。你可以看到它在工作,这里

这是一个使用回调的小得多的方法:

代码语言:javascript
复制
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();
    }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38566451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档