摘要
我正在尝试使用包含JSON的javascript数组填充数据表。我正在循环并使用JSON创建数组。当我将其传递回Datatable时,它会正确计算行数,但不会填充它们。
您可以在下面的屏幕截图中看到这一点。表格下面的数据是输出到屏幕上的数组。
代码段
$(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:似乎没有正确处理它。
我很乐意回答更多问题或发布更多代码/图片。感谢
答案 0 :(得分: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]);
}