JsがJsonの「invalid label」エラーを処理

1700 ワード

ajaxを使用する場合、jsonは便利なデータ伝送手段です.しかし、多くの人にとって、よく出会う悩ましい問題は「invalid label」が間違っていることだ.json串が正しいように見えるのに、どうしてまた間違いを犯すのですか?
たとえば、次のコードがあります.

 
   
  1.    function handle_success(response){
  2.        var json = eval(response); // response = "{'foo' : 'bar'}";
  3.   }

ブラウザはinvalid labelが間違っていると報告します.これは、evalがスクリプトに直接書くとresponseをlabelとして解釈しようとするためです.

 
   
  1. <script>
  2.   {'foo' : 'bar'};
  3. </script>

間違いを報告する原理は同じだ.
解決策は2つあります.

 
   
  1.          var json = eval('(' + response + ')'); // response = "{'foo' : 'bar'}";
  2.  

または

 
   
  1.        eval('var json = ' + response); // response = "{'foo' : 'bar'}";
  2.        //json is available now
  3.