0

概括

我正在尝试使用包含 JSON 的 javascript 数组填充数据表。我正在循环并使用 JSON inide 创建数组。当我将它传递回数据表时,它会正确计算行数,但不会填充它们。

您可以在下面的屏幕截图中看到这一点。表格下方的数据是输出到屏幕上的数组。

在此处输入图像描述

代码片段

$(document).ready(function() {
    $('#content').append( '<br><table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>' );
    $('#example').dataTable({
         "aaData" : x, // ARRAY CONTAINING JSON
         "aoColumns": [         
            { "sTitle": "ID", "mData" : "ID", sDefaultContent: "n/a" },
            { "sTitle": "Status", "mData" : "status", sDefaultContent: "n/a" },
            { "sTitle": "Date", "mData" : "date", sDefaultContent: "n/a" }
            ]
    });
});

我通过http://jsonlint.com/传递了 JSON ,结果很好。

示例 JSON

{"ID":"TEST","status":"TEST","date":"TEST"}

数组中的每个 JSON 字符串代表数据表中的一行。

一些测试

手动放入 JSON 工作正常,就像这样......

"aaData" :
        [
        {"ID":"test","status":"test","date":"test"},
        {"ID":"test","status":"test","date":"test"},
        {"ID":"test","status":"test","date":"test"},
        {"ID":"test","status":"test","date":"test"},
        ],

在此处输入图像描述

最后的想法

所以我的数组似乎输出正确,并且 Datatable 似乎手动获取 JSON。介于两者之间,它不起作用。我的想法要么是 JSON 格式,要么是你在里面拉一个带有 JSON 的数组的方式。aaData:似乎没有正确处理它。

我很乐意回答更多问题或发布更多代码/图片。谢谢

4

1 回答 1

0

aaData 是一个数组数组。所以 aaData 应该看起来更像:

x = [["test", "test", "test"],["id", "status", "date"],["123", "456", "789"]];

如果您想从您的数据中创建它:

//jsonList = you array of json objects
x = [];
for(var i = 0; i < jsonList.length; i++){
    x.push([jsonList[i].ID, jsonList[i].status, jsonList[i].date]);
}
于 2013-09-03T20:44:49.763 回答