Javascript 无效的JSON格式数据表

Javascript 无效的JSON格式数据表,javascript,html,css,json,datatable,Javascript,Html,Css,Json,Datatable,我试图实现服务器端datatable,但它抛出无效的JSON格式错误 CDN 看看XHR/Ajax调用返回给服务器的JSON,问题就显而易见了。它应该只包含如下所示的预期数据: [ {'EmployeeCode':12345,EmployeeName:'abcde',...}, {'EmployeeCode':12346,EmployeeName:'fghij',...}, ... ] 相反,JSON包含其他属性,数据嵌套在“Results”属性下。另外,我认为您需要格式化JSON

我试图实现服务器端datatable,但它抛出
无效的JSON格式
错误

CDN


看看XHR/Ajax调用返回给服务器的JSON,问题就显而易见了。它应该只包含如下所示的预期数据:

[
  {'EmployeeCode':12345,EmployeeName:'abcde',...},
  {'EmployeeCode':12346,EmployeeName:'fghij',...},
  ...
]
相反,JSON包含其他属性,数据嵌套在“Results”属性下。另外,我认为您需要格式化JSON以包含数据属性:

{
  "draw": 1,
  "recordsTotal": 57,
  "recordsFiltered": 57,
  "data": [
    [
      "12345",
      "John Smith",
      "Adam James",
      "Manager",
    ],
    ...
}

因此,作为一个简单的修复方法,在datatable配置中使用Ankush建议的“dataSrc”:“Results”属性。

使用
dataSrc
属性让datatable知道从何处收集数据:

$(document).ready(function() {
    $('#example').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": "/api/url",
         "dataSrc": function (json) {
                   debugger;
          return json.data;
        },
        "columns": [
            { data: "EmployeeCode" },
            { data: "EmployeeName" },
            { data: "ManagerName" },
            { data: "DesignationName" }
        ],
    } );
} );

可以找到有关
dataSrc
的更多详细信息。

您的JSON数据不清楚,能否使用完整的数据进行更新。看起来
EmployeeCode
缺少引号-在JSON@ic3b3rg这些数据是机密的,我不能在这里发布,但我可以向您保证,这些数据是正确的JSON格式,带引号。让我向您介绍我的朋友@Lukman,我已经在上面测试了这个JSON数据,它没有在这里抛出任何错误。我有大量的数据,我不能在这里发布,这就是为什么我发布了JSON示例,JSON非常好。我想同样,有没有办法将JSON映射到Datatable?例如,
data=results
只需使用所使用的“dataSrc”属性“dataSrc”:“results”仍然面临相同的问题。我已经更新了代码。现在尝试使用代码中提到的dataSrc&在那里放置一个断点来检查您正在接收的数据,然后返回数组属性。没有成功,我想我需要在我的API中进行更改
{
  "Results":[{"EmployeeCode": "12345"}], // This is just a sample of data
  "CurrentPage": 1,
  "PageCount": 42,
  "PageSize": 10,
  "RecordCount": 417
}
[
  {'EmployeeCode':12345,EmployeeName:'abcde',...},
  {'EmployeeCode':12346,EmployeeName:'fghij',...},
  ...
]
{
  "draw": 1,
  "recordsTotal": 57,
  "recordsFiltered": 57,
  "data": [
    [
      "12345",
      "John Smith",
      "Adam James",
      "Manager",
    ],
    ...
}
$(document).ready(function() {
    $('#example').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": "/api/url",
         "dataSrc": function (json) {
                   debugger;
          return json.data;
        },
        "columns": [
            { data: "EmployeeCode" },
            { data: "EmployeeName" },
            { data: "ManagerName" },
            { data: "DesignationName" }
        ],
    } );
} );