我有一个JSON里面有一些字典。我需要生成一个html表,以便每个外部键都是表的一列。内部键值对至少应该作为单个文本添加(我认为可能有嵌套单元格来表示它,但它会使它更复杂)。
我使用过 dynatable 库,但由于收到JSON的结构,它无法正确呈现表格。
这是我的代码:
function pintarTablaInutil(diferencias) {
$("#tableDiv").empty()
var th = ""
for (var i = 0; i<numeroPuntos; i++) {
if ($("#check"+i).is(':checked')) {
th += '<th>' + (i+1) + '</th>'
}
}
var table = "<table id='resultados' class='table'><thead>" + th + '</thead><tbody></tbody></table>'
$("#tableDiv").append(table)
$('#resultados').dynatable({
features: {
paginate: false,
sort: false,
search: false,
perPageSelect: false,
recordCount: false
},
dataset: { records: diferencias },
params: {
records: '_root'
}
})
}
第一个循环只是为了查看我管理的列数。
这是JSON结构的一个示例:
"diferencias": {
"1": {
"1": 46.0,
"0": 45.0,
"2": 49.0
},
"2": {
"1 2": 3.0,
"0 1": 0.3333333333333333
},
"3": {
"0 1 2": 0.6666666666666666
}
}
我可以获得什么解决方案?我使用Bootstrap,以防万一。
答案 0 :(得分:1)
我已经创建了一个JSFiddle,我希望能提供帮助。
我使用Underscore重新映射数据。我也稍微清理了你的方法。 &#34;检查&#34;价值似乎不清楚。
var diferencias = {
"1": {
"1": 46.0,
"0": 45.0,
"2": 49.0
},
"2": {
"1 2": 3.0,
"0 1": 0.3333333333333333
},
"3": {
"0 1 2": 0.6666666666666666
}
};
var row = {};
_.map(_.keys(diferencias), function(val) {
row[val] = JSON.stringify(diferencias[val]);
});
var dataset = [row];