2009-05-29 3 views
0

내 DataTable에서 json 데이터 삽입에 문제가 있습니다. 여기 JSON 데이터의 예를 서버로 보내기 : 여기yui 데이터 테이블 오류

{"geneItemList":"{"col":"symbol","qv":"cd4","limit":"-1","start":"0","geneid":"920","name":"CD4" 
,"symbol":"CD4","lastupdated":"2009-05-20 10:01:52.0","lastmodified":"2009-05-20 11:12:37.0"} 
,... 

그리고 내 YUI 코드 : ". 데이터 오류를"나는 내 페이지를 테스트 할 때

<script type="text/javascript"> 
    YAHOO.namespace("local"); 
    var qct = YAHOO.local; 


     YAHOO.util.Event.addListener(window, "load", function() { 
      qct.RowSelection = function() { 
       var myColumnDefs = [ 
        {key:"geneid", label:"Gene", formatter: "number", sortable:true}, 
        {key:"name", label:"Name", sortable:true}, 
        {key:"symbol", label:"Symbol", sortable:true}, 
        {key:"lastupdated", label:"Last Updated", formatter:"date", sortable:true}, 
        {key:"lastmodified", label:"Last Modified", formatter:"date", sortable:true} 
       ]; 

       var myDataSource = new YAHOO.util.DataSource("qct-list.html"); 
       myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON; 
       myDataSource.connXhrMode = "queueRequests"; 
       myDataSource.responseSchema = { 
        resultsList: "geneItemList", 
        fields: [{key:"col", parser:"string"}, 
          {key:"qv", parser:"string"}, 
          {key:"limit", parser:"number"}, 
          {key:"start", parser:"number"}, 
          {key:"geneid", parser:"number"}, 
          {key:"name", parser:"string"}, 
          {key:"symbol", parser:"string"}, 
          {key:"lastupdated", parser:"date"}, 
          {key:"lastmodified", parser:"date"}] 
       }; 

       // test this 
       var myGeneListTable = new YAHOO.widget.DataTable("geneListTable", myColumnDefs, myDataSource, 
       {initialRequest:"?col=<c:out value="${fieldName}"/>&qv=<c:out value="${queryValue}"/>&start=<c:out value="${start}"/>&limit=<c:out value="${limit}"/>", selectionMode:"single"}); 
etc... 

, 나는이 내 datatable!

무엇이 잘못 되었습니까?

답변

2

내 문제에 대한 해결책을 찾았습니다. json에게는 실수였습니다!

나쁜 :

{"geneItemList":"{"col":"symbol","qv":"cd4","limit":"-1","start":"0","geneid":"920","name":"CD4" 
,"symbol":"CD4","lastupdated":"2009-05-20 10:01:52.0","lastmodified":"2009-05-20 11:12:37.0"} 
,... 

좋은 : 그것은 단지 문법 문제였다

{"geneItemList":**[**{"col":"symbol","qv":"cd4","limit":"-1","start":"0","geneid":"920","name":"CD4" 
,"symbol":"CD4","lastupdated":"2009-05-20 10:01:52.0","lastmodified":"2009-05-20 11:12:37.0"} 
,...}**]** 
} 

! YUI DataTable에 "데이터 오류"가있는 경우 가장 먼저 할 일은 서버의 JSON 응답을 보는 것입니다.

0

일부 도구는 JSON 디버깅에 도움이됩니다.

당신은 사용할 수 있습니다 : http://www.jsonlint.com/

구문 도움말 (당신의 오류를 추적하기 위해) : http://en.wikipedia.org/wiki/JSON

또 다른 팁 새 스크립트를 테스트 할 때, 유이 디버그 모드를 사용합니다.

예 : .../json-debug.js

관련 문제