将数据从JSON文件获取到jQuery数据表中

时间:2019-04-11 20:39:46

标签: javascript jquery html json datatables

我正在尝试从Django脚本生成的JSON文件中添加添加数据。

这是JSON文件的格式:

[
{
    "6": "yo1",
    "1": "2019-04-04",
    "4": "yo1",
    "3": "yo1",
    "2": "yo1",
    "5": "yo1"
},
{
    "6": "yo2",
    "1": "2019-04-08",
    "4": "yo2",
    "3": "yo2",
    "2": "yo2",
    "5": "yo2"
}
] 

JavaScript:

let url = `/api/?site=${filters.site_filter}&sd=${filters.sd}&ed=${filters.ed}&report_type=yo`;

 $.getJSON(url, function(data) {data.forEach(d => {
        console.log(data);
        $('#video_data').DataTable( {
            "ajax": allData
            columns: [
            { title: "1" },
            { title: "2" },
            { title: "3" },
            { title: "4" },
            { title: "5" },
            { title: "6" }
            ]
        } );
    })
})

HTML代码:

<table border="1" id="video_data">
            <thead>
                <tr>
                    <th>Date</th>
                    <th>Site</th>
                    <th>Page Type</th>
                    <th>Device Type</th>
                    <th>Video Player Name</th>
                    <th>AB Test</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td></td>
                </tr>
            </tbody>
        </table>

此操作的结果仅给我一条Loading消息,并且每次加载页面时都出现此错误:DataTables warning: table id=video_data - Cannot reinitialise DataTable. For more information about this error, please see http://datatables.net/tn/3

我不确定我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

我看到了一些看起来不对劲的东西。

.getJSON的第一个参数应该是json文件的路径。从外观上看,allData似乎不是一条路径。

此外,您正在遍历getJson响应中的每个项目,并一次又一次地初始化数据表。

最后,要使用数据集初始化表,请使用属性data而不是ajax。应该看起来像这样:

var url = 'path/to/json/file.json';
$.getJSON(url, function(data) {
  $('#video_data').DataTable({
    data: data
  });
})