2014-09-20 2 views
1

저는 현재 jQuery Datatables가 매우 간단한 json 배열로 작업하도록하려고 노력하고 있습니다. 유일한 차이점은 정말 내 API의 출력이 발생되는 것 같이 정말 도움이되지 수있는 이스케이프되고 있다는 사실은jQuery DataTables에서이 기본 JSON 배열을 이해하지 못하는 이유는 무엇입니까?

"{\"data\":[[\"Row1\",\"0\",\"1\",\"1\",\"2\",\"6\",\"0\",\"1\"],[\"Row2\",\"16\",\"11\",\"13\",\"13\",\"16\",\"2\",\"5\"],[\"Row3\",\"0\",\"1\",\"1\",\"0\",\"1\",\"0\",\"0\"],[\"Row4\",\"14\",\"8\",\"19\",\"16\",\"24\",\"3\",\"0\"],[\"Row5\",\"4\",\"0\",\"2\",\"1\",\"2\",\"2\",\"1\"]]}" 

입니다 : 내 마음에 출력 JSON은 datatables 사이트에서 간단한 아약스 예 일치 JSON.NET에 의해. 크롬에서 데이터 테이블을 디버깅 할 때 'Uncaught TypeError : 속성'길이 'undefined'예외를 읽을 수 없습니다. 여기

내 HTML/자바 스크립트입니다 :

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#incVolumes').dataTable({ 
     "ajax":"http://localhost/API/Reporting/Volumes" 
    }); 
}); 
</script> 
<table id="incVolumes" class="display" cellspacing="0" width="100%"> 
     <thead> 
      <tr> 
       <th>Worksource</th> 
       <th>Col1</th> 
       <th>Col2</th> 
       <th>Col3</th> 
       <th>Col4</th> 
       <th>Col5</th> 
       <th>Col6</th> 
       <th>Col7</th> 
      </tr> 
     </thead> 

    </table> 

나는 보통 jQuery 플러그인이 뭔가를 전달하는 Json.Parse을 사용해야합니다,하지만 난 그게 datatables 이해가 어쨌든 돌봐?

제 질문은 어디에서 볼 수 있습니까?

+0

합니다. 그것이 문자열이 디버거에서 표현되는 방식이 아니라면 말입니다. – nnnnnn

+0

그게 옳다고 생각하지 않습니다. json.net 라이브러리가 네이티브로 도피하고 json.parse를 사용하면 정상적으로 작동합니다. – dcrdev

+0

그러면 앞에서 말한 것처럼 디버거에서 문자열이 표시되는 방식이어야합니다. 실제 출력에 그 모든 역 슬래시가 있으면 잘못된 JSON이됩니다. (여기에서 볼 수 있듯이 : http://jsfiddle.net/h5pj7q8o/) – nnnnnn

답변

1

datatables가 결과를 이해하지 못하는 이유는 결과 json이 json 객체 컬렉션에있는 json 문자열이기 때문입니다. Json.NET은이 문제를 일으키지 않고 MVC 컨트롤러에서 json을 반환 한 결과입니다.

문제에 대한 해결책과 같이 datatables의 DATASRC 속성 내에서 JSON.parse를 사용하는 다음 JSON이 유효 JSON입니다하지 않는 것이 같은 이스케이프

$('#incVolumes').dataTable({ 
    "ajax": { 
     "url": "http://localhost/IceMin/IMReporting/Volumes", 
     dataSrc: function(json) { var parsedData = JSON.parse(json); return parsedData.data } 
    }, 
관련 문제