jQuery 数据table 无法将 json 送入 table

jQuery Datatable unable to feed json into the table

这是我从 django 后端收到的作为响应的 json 的格式。如何让数据table 将其读入table?

[{
    "model": "model name", 
       "pk": 2, 
   "fields": {
         "name1": .., 
         "name2": ..,
         }
  },
  {
    "model": "model name", 
       "pk": 2, 
   "fields": {
         "name1": .., 
         "name2": ..,
         }
  }
]

Javascript:

    $(document).ready( function () {
            $('#tablename')
            .on('xhr.dt', function(e, settings, json){
                console.log(json)
            })
            .DataTable({
                "ajax": {
                    "url": "list",
                    "dataSrc": "",
                },
            });
    });

console.log(json) 将 json 打印为字符串而不是 JS 对象。

没有花招:

$('#tablename').DataTable({
   ...
   columns : [
      { data : 'fields.name1' },
      { data : 'fields.name2' }
      //etc
   ]        
});

更新(调查 OP 网站后)

  1. 你的 http://anime.moxware.com/list/ 工作得很好
  2. http://anime.moxware.com/list/?_12234343434也是
  3. 你期待什么

    $.ajax({
        dataType: 'json',
        type: 'GET',
        url: 'list',
    }).done(addDataToTable.bind(this));
    
    function addDataToTable(data){
       this.dt.rows.add(data).draw();
    }
    

    要做什么?

按照直接有据可查的方式进行操作,数百个示例演示了如何操作:

<table id="animelist" class="table">
    <thead>
        <tr>
            <th></th>
            <th></th>
            <th></th>
            <th></th>
        </tr>
    </thead>
</table>
var dt = $('#animelist').DataTable({
   ajax : {
        url : 'list',
        dataSrc : ''
   },
   processing: true,
   columns : [
       {"data" : 'fields.anime_name', "title": "Anime Title"},
       {"data" : 'fields.season_no', "title": "Season"},
       {"data" : 'fields.episodes_watched', "title": "Episodes Watched"},
       {"data" : 'fields.total_episodes', "title": "Total Episodes"}
    ]
});

仅此而已。没有创意书面 ajax 调用,没有替代添加方法,没有加倍字段、名称或标题定义,没有尾随逗号或其他任何内容。