2015-02-06 2 views
0

Мой выхода JSON из контроллера звучит так:JQuery DataTables - JSON вход не отображающий на странице

{"subscribers":"[{\"code\":\"Code1\",\"name\":\"Name1\",\"id\":539,\"companyId\":\"CD1\",\"acctNum\":\"Dell\"},{\"code\":\"Code2\",\"name\":\"Name2\",\"id\":540,\"companyId\":\"CD2\",\"acctNum\":\"Dell1\"}]"} 

Это выходное переменное "данные" от контроллера 'three.htm':

$("#getName").click(function() { 
    $.getJSON("three.htm", function(data) { 
     }) 
     .fail(function(jqxhr, textStatus, error) { 
     var err = textStatus + ', ' + error; 
     alert(err); 
     console.log("Request Failed: " + err); 
     }) 
     .success(function(data){ 
      console.log("loadDataTable >> "+JSON.stringify(data)); 
      loadDataTable(data); 
     }) 
}); 

function loadDataTable(data){ 
    $("#recentSubscribers").dataTable().fnDestroy(); 
    var oTable = $('#recentSubscribers').dataTable({ 
     "aaData" : data, 
     "processing": true, 
     "aoColumns" : [ 
      {"mData" : "code" }, 
      { "mData" : "name" }, 
      { "mData" : "id" }, 
      {"mData" : "companyId" }, 
      {"mData" : "acctNum" } 
      ] 
     }); 
    } 

Однако данные типа datatable не показывают никаких результатов.

Очень застрял здесь, пробовав много подходов. Помоги пожалуйста.

ответ

1

Ваш JSON в основном просто объект с одним элементом, subscribers, держа длинную строку. Вам нужно разобрать эту строку JSON, прежде чем он может быть вставлен в DataTables:

... 
"aaData" : JSON.parse(data.subscribers), 
... 

Ваш код работает здесь ->http://jsfiddle.net/x5n94dqv/

+0

Спасибо! Работал так хорошо, как шарм :) Застрял на этой небольшой части довольно долго. – swateek

Смежные вопросы