Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
Ajax 在数据表中填充JSON对象_Ajax_Json_Datatables - Fatal编程技术网

Ajax 在数据表中填充JSON对象

Ajax 在数据表中填充JSON对象,ajax,json,datatables,Ajax,Json,Datatables,我正在使用DataTables 1.10.x,并希望使用JSON对象填充表中的数据 $(document).ready( function () { $('#diagtable').dataTable( { "ajax": '/api/v1/diag/1/', "columns": [ { "date": "date" }, { "diagnosis": "diagnosis" } ],

我正在使用DataTables 1.10.x,并希望使用JSON对象填充表中的数据

$(document).ready( function () {
    $('#diagtable').dataTable( {
        "ajax": '/api/v1/diag/1/',
        "columns": [
            { "date": "date" },
            { "diagnosis": "diagnosis" }
        ],
        dom: 'T<"clear">lfrtip',
    } );
} );
我的AJAX调用返回以下JSON:

[
    {
        "date":"2010-03-20",
        "diagnosis":"Test1"
    },
    {
        "date":"2015-03-21",
        "diagnosis":"Test2"
    }
]
我看到正确的AJAX调用是由DataTables(HTTP 200)进行的,但是该表显示“正在加载…”

我试着使用下面的内容,但仍然没有数据填充到我的表中

"aoColumns": [
   { "mData": "date" },
   { "mData": "diagnosis" }
]
要使用的显示:

    "columns": [
        { "data": "name" },
        ...
但我的JSON中没有这个“数据”或类似的内容。我也不能改变我的JSON


知道我做错了什么吗?

返回的JSON格式的数据与DataTables 1.10.x预期的默认格式不同,请参见或示例

由于您提到无法更改JSON结构,因此解决方案是更改
dataSrc
属性,请参见下文

$(document).ready( function () {
    $('#diagtable').dataTable( {
        "ajax": {
            "url": '/api/v1/diag/1/',
            // Get JSON data from a plain array 
            // rather than an array in an object
            "dataSrc": ""
        },
        "columns": [
            { "data": "date" },
            { "data": "diagnosis" }
        ],
        dom: 'T<"clear">lfrtip',
    } );
} );
$(文档).ready(函数(){
$('#diagtable')。数据表({
“ajax”:{
“url”:“/api/v1/diag/1/”,
//从普通数组获取JSON数据
//而不是对象中的数组
“dataSrc”:”
},
“栏目”:[
{“数据”:“日期”},
{“数据”:“诊断”}
],
dom:'Tlfrtip',
} );
} );

感谢您的提示,至少现在我的表中有两行(以前只是“加载…”),但它们是空的。我得到
DataTables警告:table id=antetable-为行0请求的未知参数“0”。有关此错误的详细信息,请参阅http://datatables.net/tn/4
。我访问了那个页面-不知道为什么会抛出错误。这两个对象都是字符串表示形式。我还尝试将列名更改为(小写)
date
diagnosis
,但没有成功地将数据放入表中。很抱歉,我错过了
columns.data
属性初始化代码中的另一个问题,并更新了我的答案。
$(document).ready( function () {
    $('#diagtable').dataTable( {
        "ajax": {
            "url": '/api/v1/diag/1/',
            // Get JSON data from a plain array 
            // rather than an array in an object
            "dataSrc": ""
        },
        "columns": [
            { "data": "date" },
            { "data": "diagnosis" }
        ],
        dom: 'T<"clear">lfrtip',
    } );
} );