【问题标题】:Datatables throwing "invalid JSON" error when loading from local file从本地文件加载时数据表抛出“无效 JSON”错误
【发布时间】:2015-06-10 21:10:37
【问题描述】:

我正在尝试将以下 JSON 数据从本地文件中提取到 DataTables 中,但收到 invalid JSON 响应:

    {
    "data": [
        {
            "accountNumber": "2423",
            "domain": "domain.com",
            "playerClass": "",
            "adTag": ""
        },
        {
            "level": "info",
            "message": "generator ",
            "timestamp": "2015-06-10T15:59:02.803Z"
        }
    ]
}

使用:

    $(document).ready(function () {
        $('#content').dataTable({
            "ajax": 'test.log'
        });
    });

JSFIDDLE

【问题讨论】:

    标签: jquery ajax json datatables


    【解决方案1】:

    这是因为您确实有无效的 JSON。使用数据表时,根据文档,您的数据源始终需要是一个数组:https://www.datatables.net/manual/data

    它应该是这样的:

    {
        "data": [
            {
                "accountNumber": "1234",
                "domain": "domain.com",
                "playerClass": "Player",
                "adTag": ""
            },
            {
                "accountNumber": "1234",
                "domain": "domain.com",
                "playerClass": "Player",
                "adTag": ""
            }
        ],
        "level": "info",
        "message": "tag generator ",
        "timestamp": "2015-06-09T21:00:45.776Z"
    }
    

    当您创建 JSON 时,您应该始终对其进行验证以确保其有效 - 请查看 http://jsonlint.org

    【讨论】:

    • 好吧,根据 jsonlint,OP 的 test.log 是完全有效的 JSON。你说得对,内容不符合 dataTables 的要求。
    【解决方案2】:

    使用此命令来捕获错误而不是警报:

    $.fn.dataTable.ext.errMode = 'throw';
    

    来自link

    【讨论】:

      【解决方案3】:

      您必须调用 ajax 方法(GET 或 POST)... 像这样的:

      "processing": true,
      "serverSide": true,
      "ajax": {
          "url": "test.log",
          "type": "POST"
      }
      

      【讨论】:

        猜你喜欢
        • 2016-02-04
        • 2022-01-02
        • 2015-08-25
        • 2020-10-23
        • 2017-09-29
        • 1970-01-01
        • 2018-05-11
        • 2013-08-28
        • 1970-01-01
        相关资源
        最近更新 更多