Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么可以';jQuery数据表解析我的JSON?_Javascript_Jquery_Json_Datatables - Fatal编程技术网

Javascript 为什么可以';jQuery数据表解析我的JSON?

Javascript 为什么可以';jQuery数据表解析我的JSON?,javascript,jquery,json,datatables,Javascript,Jquery,Json,Datatables,我正在尝试按如下方式填充一个: $("#my-datatable").dataTable( { "sAjaxSource" : "/someURLOnMyServer", "bDestroy" : true, "fnServerParams" : function(serverParams) { serverParams.push( { "name" : "widget",

我正在尝试按如下方式填充一个:

$("#my-datatable").dataTable( {
    "sAjaxSource" : "/someURLOnMyServer",
    "bDestroy" : true,
    "fnServerParams" : function(serverParams) {
        serverParams.push(
            {
                "name" : "widget",
                "value" : token
            }
        );
    }
});
以及它正在填充的HTML表:

<table id="my-datatable">
    <thead>
        <tr>
            <th>Type</th>
            <th>Value</th>
            <th>ID</th>
            <th>Fizz</th>
            <th>Buzz</th>
        </tr>
    </thead>
    <tbody></tbody>
</table>
但是Firebug在其控制台中抛出以下JavaScript错误:

TypeError: aData is undefined
[Break On This Error]   

for ( i=0 ; i<aData.length ; i++ ) --> jquery.dataTables.js (line 2541)
TypeError:数据未定义
[在此错误上中断]
对于(i=0;i jquery.dataTables.js)(第2541行)

任何人都能发现哪里出了问题吗?要么我没有正确设置我的
dataTable
对象,要么返回的JSON与它试图填充的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"}]

}

Datatables需要特定的结果格式。如果不使用该格式,则必须声明所有内容

$('#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"},
        ],

    });

这是格式:

我不太了解jQuery数据表,但我想知道返回的JSON作为数组这一事实是否是问题所在。再次感谢@Aktee(+1)-但这让我更加困惑!什么是
sSource
aoData
fnCallback
aoData
mDataProp
,它们来自哪里(它们在哪里声明)?我猜你上面的代码片段只是我的代码的一个抽象示例,但是,我没有足够的信息来理解你的示例并将其应用于我的问题。你发送给我的链接和所有dataTables文档也是如此。有不错的演示和代码片段,但没有可用的、真实的ex这是一个很难没有例子的例子,这里有一个和你的数据一模一样。@pnongrata,你有机会检查我的托管例子吗?@pnongrata还好吗?对不起@Aktee我从上周就出城了。我现在正在检查-感谢到目前为止的帮助和后续行动
$('#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"},
        ],

    });