使用带有AJAX和JSON文件的DataTables,表中没有可用数据

时间:2018-08-24 13:22:39

标签: jquery node.js ajax express

我正在尝试使用DataTables用JSON文件填充表格,但是每次加载页面时,表格只会显示“表格中没有可用数据”。

这是我当前的代码:

<table id="table_id" class="display">
<thead>
    <tr>
        <th>ID</th>
        <th>Nombre</th>
        <th>Apellido</th>
        <th>Mail</th>
        <th>Confirmado</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>Row 1 Data 1</td>
        <td>Row 1 Data 2</td>
    </tr>
    <tr>
        <td>Row 2 Data 1</td>
        <td>Row 2 Data 2</td>
    </tr>
</tbody>
</table>

<script>
    $(document).ready(function () {
        $('#table_id').DataTable({
            "ajax" : {"url":"/personas.json", "dataSrc":""},
            "columns" : [
                {personas : "id"},
                {personas : "nombre"},
                {personas : "apellido"},
                {personas : "email"},
                {personas : "confirmado"}
            ]
        });
    });
</script>

这是一段JSON代码:

{
"personas": [
    {
        "id": 0,
        "nombre": "Aurelia",
        "apellido": "Osborn",
        "email": "aureliaosborn@lovepad.com",
        "confirmado": false
    },
    {
        "id": 1,
        "nombre": "Curry",
        "apellido": "Jefferson",
        "email": "curryjefferson@lovepad.com",
        "confirmado": true
    }
    ]
}

这是我在加载页面(页面的一部分)时得到的:

Image

以防万一这可能是问题所在,这是JSON的目录:

Second Image

2 个答案:

答案 0 :(得分:2)

更改

"ajax" : {"url":"/personas.json", "dataSrc":""}

"ajax" : {"url":"/personas.json", "dataSrc":"personas"}

通过指定dataSrc,您将使用personas中的personas.json数组作为数据源。

请参阅以下内容以供参考:

https://datatables.net/examples/ajax/custom_data_property.html https://datatables.net/examples/ajax/custom_data_flat.html

此外,如前所述,数组[的右括号没有匹配的]的右括号。

以下是有关您的数据的有效示例:

https://jsfiddle.net/onLuw2pa/165/ 我已经将您的JSON对象更改为值的数组(通过这样做,您不必指定columns):

{
   "personas":[
      [
         0,
         "Aurelia",
         "Osborn",
         "aureliaosborn@lovepad.com",
         false
      ],
      [
         1,
         "Curry",
         "Jefferson",
         "curryjefferson@lovepad.com",
         true
      ]
   ]
}

https://jsfiddle.net/onLuw2pa/169/ 这是一个使用您的确切JSON的示例。

答案 1 :(得分:0)

可能是因为您的“角色”数据格式不正确的json。它缺少一个封闭的数组括号。应该是:

{
"personas": [
    {
        "id": 0,
        "nombre": "Aurelia",
        "apellido": "Osborn",
        "email": "aureliaosborn@lovepad.com",
        "confirmado": false
    },
    {
        "id": 1,
        "nombre": "Curry",
        "apellido": "Jefferson",
        "email": "curryjefferson@lovepad.com",
        "confirmado": true
    }
  ]
}