为什么jQuery dataTables不能解析我的JSON?

我正在尝试填充dataTable ,如下所示:

$("#my-datatable").dataTable( { "sAjaxSource" : "/someURLOnMyServer", "bDestroy" : true, "fnServerParams" : function(serverParams) { serverParams.push( { "name" : "widget", "value" : token } ); } }); 

并填充HTML表格:

 
Type Value ID Fizz Buzz

根据Firebug,从服务器返回的JSON是:

 [ { "id":1, "attributeType":{ "id":1, "name":"test1", "tag":"test-type", "is-dog":false }, "attributeValue":{ "id":null, "name":"blah", "tag":"BLAH" }, "buzz":1, "fizz":"53abc" } ] 

但Firebug在其控制台中抛出以下JavaScript错误:

 TypeError: aData is undefined [Break On This Error] for ( i=0 ; i jquery.dataTables.js (line 2541) 

谁能发现出了什么问题? 要么我没有正确设置我的dataTable对象,要么返回的JSON与它试图填充的HTML表的“模式”不匹配。 无论哪种方式,我都输了。 提前致谢!

数据表需要某种格式的结果。 如果您不使用该格式,则必须声明所有内容。

 $('#my-datatable').dataTable( { "sAjaxSource": "/url/here", "fnServerData": function ( sSource, aoData, fnCallback ) { aoData.push( { "name": "widget", "value": "token" } ); request = $.ajax({ "dataType": 'json', "type": "GET", "url": sSource, "data": aoData, "success": fnCallback }); }, "aoColumns": [ { "mDataProp": "id"}, { "mDataProp": "fizz"}, { "mDataProp": "name"}, { "mDataProp": "tag"}, { "mDataProp": "tag"}, { "mDataProp": "attributeValue.name"}, { "mDataProp": "attributeValue.tag"}, ], }); 

这是格式: http : //datatables.net/release-datatables/examples/server_side/post.html

尝试用aaData封装你的JSON对象,如:

 {"aaData" : [{"id":1,"attributeType":{"id":1,"name":"test1","tag":"test-type","is-dog":false},"attributeValue":{"id":null,"name":"blah","tag":"BLAH"},"buzz":1,"fizz":"53abc"}] }