Javascript 将JSON对象加载到Datatable Jquery中时出现问题
我正在使用Javascript 将JSON对象加载到Datatable Jquery中时出现问题,javascript,jquery,ajax,json,datatable,Javascript,Jquery,Ajax,Json,Datatable,我正在使用DataTables和Jquery,我有一个JSON对象数据源,我想通过Ajax获取并显示在表中 JSON数据从/live/logurl返回,格式如下: { "Logs": [ { "date": "2015-04-22T14:00:39.086Z", "eventType": "event1", "str": "Application startup" },
DataTables
和Jquery
,我有一个JSON
对象数据源,我想通过Ajax
获取并显示在表中
JSON
数据从/live/log
url返回,格式如下:
{
"Logs": [
{
"date": "2015-04-22T14:00:39.086Z",
"eventType": "event1",
"str": "Application startup"
},
{
"date": "2015-04-22T14:01:27.839Z",
"eventType": "event2",
"str": "test Logged in"
}
]
}
我的表格HTML:
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>Date</th>
<th>Event</th>
<th>Description</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Date</th>
<th>Event</th>
<th>Description</th>
</tr>
</tfoot>
</table>
我可以通过调试器看到JSON
数据被正确提取
我似乎在与JSON
数据相关的datatables
js中发现了一个错误
fnInitalise中的值aData为null-未捕获类型错误:无法读取未定义的属性“长度”。数据表被卡住了,说“正在加载…”
我确信这可能是由于我的
JSON
数据格式。有人能给我指出正确的方向吗?您应该访问数据中的日志对象,因为在构建表时,列将循环通过该数组。该插件的工作原理是假设数组的名称为data
,即:
{
"data": [
// Array of objects
]
}
但由于您在本例中使用的是Log
:
{
"Logs": [
// Array of objects
]
}
…您需要手动指定dataSrc
属性(因为您使用的是):
试试下面的JSA让我知道:。嗨,麻瓜,谢谢,刚刚尝试了这个建议,没有改变相同的错误:(也许你需要数组json而不是一个键的对象。
{
"Logs": [
// Array of objects
]
}
$(document).ready(function() {
$('#example').dataTable( {
"ajax": {
"url": "/live/log",
"dataSrc": "Logs"
},
"columns": [
{"data": "date"},
{"data": "eventType"},
{"data": "str"}
]
});
});