jQuery Datatable无法将json提供给表

时间:2015-05-23 08:11:54

标签: jquery ajax json datatable

这是我从django后端收到的json格式。如何将数据表读入表中?

[{
    "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对象。

1 个答案:

答案 0 :(得分:1)

没有专注于:

$('#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();
    }
    

    要做什么?

  4. 直接记录良好的方式进行,正如数百个示例所示:

    <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调用,没有替代添加方法,没有字段翻倍,名称或标题定义,没有尾随逗号或其他任何内容。