0

我有一个 JSON,里面有一些字典。我需要生成一个 html 表,因此每个外部键都将是表的一列。内部键值对至少应作为单个文本添加(我认为可能有嵌套单元格来表示它,但这会使它更复杂)。

我使用了可动态库,但由于接收到的 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,以防万一。

4

1 回答 1

1

我创建了一个JSFiddle,希望对您有所帮助。

我使用下划线重新映射数据。我也清理了你的方法。“检查”值对我来说似乎不清楚。

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];
于 2014-03-18T10:31:01.943 回答