jQuery数据表错误地解析json

dav*_*rld 1 jquery json datatables

我只是尝试使用以下json对象查询数据表的示例...

[{"firstName":"pom",
"lastName":"sdfpom",
"email":null,
"password":"cfe9a43acec0a35f903bc2d646ce8e58b5ef6b67",
"username":"Dave",
 "access":null,
"id":1},
{"firstName":"FirstName",
"lastName":"LastName",
"email":null,
"password":"8d60258ef3ae1b8eae67e9298f15edf5c6e05dfe",
"username":"Username",
"access":null,
"id":2}]
Run Code Online (Sandbox Code Playgroud)

这在下面的变量数据中返回...

<script>
$(document).ready(function() {
    $.getJSON('userManagement/getAllUsers', function(data) {
            $('#table').dataTable( {
                "sAjaxSource": data
        });
    });
});

    </script>
    <table id="table">
        <thead>
            <tr>
                <th>firstName</th>
                <th>lastName</th>
                <th>email</th>
                <th>password</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>Row 1 Data 1</td>
                <td>Row 1 Data 2</td>
                <td>etc</td>
            </tr>
            <tr>
                <td>Row 2 Data 1</td>
                <td>Row 2 Data 2</td>
                <td>etc</td>
            </tr>
        </tbody>
    </table>
Run Code Online (Sandbox Code Playgroud)

现在JSON似乎是有效的,当我用它做任何其他事情时,例如在jquery中使用它它工作正常,但数据表根本无法正确呈现.我正在使用的javascript有什么问题吗?

rai*_*7ow 5

默认情况下,DataTables将为其数据源处理一个数组数组:当它必须处理对象数组时(如在您的情况下),还有一个额外的步骤.它在插件文档中的示例中进行了描述.基本上,您需要做的是添加'column'属性的描述(作为数组):

$('#table').dataTable({
  "aaData": data,
  "aoColumns": [
    { "mData": "firstName" },
    { "mData": "lastName" },
    { "mData": "email" },
    { "mData": "password" },
    { "mData": "username" },
    { "mData": "access" },
    { "mData": "id" }
  ]
});
Run Code Online (Sandbox Code Playgroud)

这是小提琴.