2011-12-20 21 views
2

JSONの処理が新しくなりました。私のページには次のスクリプトが含まれています。 Firebugのを使用して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後、Firebugのは、変数statusBeanがnullであることを私に示して

を返していることがわかります。

私は間違っていますか?

+3

'data'はすでにJavaScriptオブジェクトです。 'getJSON'はあなたの応答を解析します。 JSON構造体で定義されたJavaScriptオブジェクトまたは配列であり、 '$ .parseJSON()'メソッドを使用して解析された返されたデータが 'success'コールバックに渡されます。 –

+1

[なぜparseJSONがnullを返すのか]の複製可能性(http://stackoverflow.com/questions/6465468/why-parsejson-returns-null) –

答えて

3

getJSONコールバックに渡されたdataの値は、既にJSオブジェクトになります。 $.parseJSONは、オブジェクトが渡されるときに文字列を受け取るので、nullを返します。 $.parseJSONへの呼び出しは、最初にgetJSONがJSONを前提としているため、ここで簡単に削除できます。

関連する問題