Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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
如何使用本地JSON对象作为jQuery数据表的数据源_Jquery_Json_Datatables - Fatal编程技术网

如何使用本地JSON对象作为jQuery数据表的数据源

如何使用本地JSON对象作为jQuery数据表的数据源,jquery,json,datatables,Jquery,Json,Datatables,我有一个如下格式的本地JSON对象: [{ "id": "58", "country_code": "UK", "title": "Legal Director", "pubdate": "2012-03-08 00:00:00", "url": "http://..." },{ "id": "59", "country_code": "UK", "title": "Solutions Architect,", "pubda

我有一个如下格式的本地JSON对象:

[{
    "id": "58",
    "country_code": "UK",
    "title": "Legal Director",
    "pubdate": "2012-03-08 00:00:00",
    "url": "http://..."
},{
    "id": "59",
    "country_code": "UK",
    "title": "Solutions Architect,",
    "pubdate": "2012-02-23 00:00:00",
    "url": "http://..."
},{
    // ....more of the same......
}]
我想将其设置为jQuery的数据源,并尝试了以下方法:

testdata = '{{ jobsJSON | raw }}'; //twig template tag
console.log(testdata);
$('#test').dataTable({
    "aoData": testdata,
    "aoColumns": [
        { "mDataProp": "id" },
        { "mDataProp": "country_code" },
        { "mDataProp": "title" },
        { "mDataProp": "pubdate" },
        { "mDataProp": "url" }
    ]
});
DataTables插件加载并尝试绘制表格,但出现错误“表格中没有可用数据”


我没有进行AJAX调用,只想从本地JS变量访问JSON对象。

提供您自己数据的属性是
aaData
而不是
aoData

testdata = [{"id":"58",...}]; // local object

$('#test').dataTable({
    "aaData": testdata,
    "aoColumns": [
        { "mDataProp": "id" },
        { "mDataProp": "country_code" },
        { "mDataProp": "title" },
        { "mDataProp": "pubdate" },
        { "mDataProp": "url" }
    ]
});

我遇到了同样的问题,解决方法如下: 将
$(“#list_table”).dataTable
代码放入
setTimeout
函数中,将dataTable应用程序延迟5秒:

setTimeout("$('#list_table').dataTable ...." , 5000);

我注意到,在firebug中应用dataTable插件加载表后,它不会将错误显示为“表中没有可用数据”

Does
console.log(testdata)给你一个字符串或数组/对象?(如果你不能区分差异,请使用
typeof testdata
。这是一个字符串。我也尝试过在它上面使用$.parseJSON()。谢谢-这对它进行了排序。testdata=$.parseJSON({{jobsJSON | raw}}');谢谢。这是两者的组合,json没有被正确解析:testdata=$.parseJSON({{{jobsJSON | raw}}'));我知道这是一个旧回复,但如何显示列标题?它当前为空。谢谢!@Ali在您的mDataProp之后添加一个title属性来设置列标题。如果我有另一个要设置为列的变量,我可以不将该变量添加到
testdata
json中吗?