2011-12-20 3 views
2

저는 JSON 처리에 새로운 것이므로 막혔습니다. 내 페이지에는 다음 스크립트가 포함되어 있습니다. 파이어 버그를 사용구문 분석 JSON 문자열이 null을 반환합니다.

<script type="text/javascript"> 



$(document).ready(function() { 

    $('#progressBar').progressbar({value: 0.0}); 


    process(); 
}); 
    function process() { 

     getStatus(); 
     setInterval(getStatus,1000); 
    } 

    function getStatus() { 
     $.getJSON('status-report', function(data) { 
      var statusBean = $.parseJSON(data); 
       $('#progressBar').progressbar('option','value',$.trim(statusBean.percentComplete)); 
      $('#status').html(statusBean.statusDescription); 
     }); 
    } 


</script> 

, 나는 '상태-보고서'에 대한 호출이 JSON 문자열

{"statusBean":{"percentComplete":50.0,"statusDescription":"Default Description"}} 

하지만 $.parseJSON 후, 방화범 변수 statusBean가 null 내게 보여

을 반환하는 것을 볼 수 있습니다.

내가 뭘 잘못하고 있니?

+3

'data'는 이미 자바 스크립트 객체입니다. 'getJSON'는 당신을 위해 응답을 파싱합니다. * "'success' 콜백은 반환 된 데이터를 전달합니다. 반환 된 데이터는 일반적으로 JSON 구조체에 정의 된 JavaScript 객체 또는 배열이며'$ .parseJSON()'메서드를 사용하여 파싱됩니다."*. –

+1

가능한 복제본 [왜 parseJSON이 null을 반환하는지] (http://stackoverflow.com/questions/6465468/why-parsejson-returns-null) –

답변

3

getJSON 콜백에 전달 된 data의 값은 이미 JS 개체가됩니다. $.parseJSON은 문자열을 예상하므로 객체가 전달 될 때 null을 반환합니다. $.parseJSON에 대한 호출은 여기서 간단하게 제거 할 수 있습니다. getJSON은 JSON을 처음부터 가정하기 때문입니다.