jQuery DataTable - 显示具有自定义 JSON 结构的数据

jQuery DataTable - Displaying data with custom JSON structure

如何使用 jQuery 数据表填充自定义 JSON 数据结构。我在下面找到了解决方案(数据表默认 - JSON 结构)并且它工作正常,直到我将“数据”作为主要 object/array,但是,我想利用另一个 JSON 结构(我的 JSON 结构)。有可能还是我需要坚持使用 Datatable 默认 JSON 结构?我正在使用 DataTables 1.10.7。在此先感谢您的帮助。

数据表默认 - JSON 结构

{
 "data": [
{
  "name": "Tiger Nixon",
  "position": "System Architect",
  "salary": "0,800",
  "start_date": "2011/04/25",
  "office": "Edinburgh",
  "extn": "5421"
},
{
  "name": "Garrett Winters",
  "position": "Accountant",
  "salary": "0,750",
  "start_date": "2011/07/25",
  "office": "Tokyo",
  "extn": "8422"
}
]
}

我的JSON结构

[
{
  "Date": "12/04/14",
  "MeterID": "56",
  "BlockID": "12",
  "Type": "sure",
  "Subtype": "truction",
  "Notes": ""
},
{
  "Date": "12/04/14",
  "MeterID": "3456",
  "BlockID": "123456",
  "Type": "alism",
  "Subtype": "working",
  "Notes": "Lorem"
}
]

jQuery 数据表代码片段

$('#incident').DataTable({
    "ajax": "../../data/object.json",
    "columns": [
        { "data": "name" },
        { "data": "position" },
        { "data": "salary" },
        { "data": "start_date" },
        { "data": "office" },
        { "data": "extn" }
    ],
    "iDisplayLength": 10
})

这是我的做法。

$('#divWorkQueueTable').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="workQueueTable"></table>');
    $('#workQueueTable').DataTable({
        "data": requests,
        "columns": [{
            "title": 'ID',
            "data": "ID",
            "sWidth": "5%",
            "render": function(data) {
                return '<a href="javascript:;" onclick="modARBRequest.Load( \'' + data + '\')">' + data + '</a>';
            }
        }, {
            "title": "Project ID",
            "data": "ProjectID",
            "sWidth": "10%"
        }, {
            "title": "Phase",
            "data": "Phase",
            "sWidth": "5%"
        }, {
            "title": "Project Description",
            "data": "Title",
            "sWidth": "50%"
        }, {
            "title": "Date Requested",
            "data": "DateRequested",
            "sWidth": "10%",
            "render": function(data) {
                return modCommon.DateToString(data);
            }
        }, {
            "title": "Stage",
            "data": "Stage",
            "sWidth": "15%"
        }, {
            "title": "Status",
            "data": "Status",
            "sWidth": "10%"
        }]
    });

所以如果我是你,我会尝试解析 ajax 请求并将解析的数据传递给数据 table。查看您的 "data" 行,它们似乎与您的 json 不对应。我错过了什么吗?

所以你需要像 "data":"Date", "data": "MeterID", "data": "BlockID" 等等...

$('#incident').DataTable({
"ajax": "../../data/object.json",
"columns": [
    { "data": "Date" },
    { "data": "MeterID" },
    { "data": "BlockID" },
    { "data": "Type" },
    { "data": "Subtype" },
    { "data": "Notes" }
],
"iDisplayLength": 10

})

阅读此 solution,它将解决您的疑问..