如何将嵌套JSONS的JSON带到html表?

时间:2014-03-18 09:04:25

标签: javascript html json dynatable

我有一个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,以防万一。

1 个答案:

答案 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];