2012-03-18 4 views
0

を動作しません:へのアクセスJSONは、私はJSONの更新を受け取るためのAjaxを使用しています

[{"messageId":43,"text":"ghstgh"}] 

と私が今したいとき:

$(document).ready(function(){ 
    $('form').submit(function(event){ 
     event.preventDefault(); 
     var form = JSON.stringify($('form').serializeArray()); 

     $.ajax ({ 
      url: '{{ path('PUSChatBundle_add') }}', 
      type: 'POST', 
      data: form, 
      contentType: 'application/json', 
      success: function(){ 
       $.get('{{ path('PUSChatBundle_refresh') }}', function(data){ 
        alert(data[1].text); 
       }); 
      } 
     }); 
    });   

});  

今悪いが受信JSONオブジェクトはこのようになります来ます使用してテキストにアクセスするには:

alert(data[1].text); 

私は未定義の取得....

私は何が間違っていますか?

よろしく、

+0

配列の最初の要素は、インデックス0有する - ない1 – powerbuoy

+0

よりもむしろalert'使用 '使用を現代のブラウザに付属し、 'console.log(data); 'を使用するJavascriptコンソールでは、変数を調べて、コールバックで返されているものを正確に見ることができます – JaredMcAteer

答えて

2

応答が解析されるようにdataTypejsonに設定してください。

success: function(){ 
       $.get('{{ path('PUSChatBundle_refresh') }}', function(data){ 
        alert(data[0].text); 
       },'json'); //<-- specify the dataType 
      } 

または手動でJSONを解析

success: function(){ 
       $.get('{{ path('PUSChatBundle_refresh') }}', function(data){ 
        var json = $.parseJSON(data); //<- parse json 
        alert(json[0].text); 
       }); 
      } 

例:

var j='[{"messageId":43,"text":"ghstgh"}]'; 
var json = $.parseJSON(j); 
console.log(json[0].text); // or alert(json[0].text); 

DEMO

+0

これはありがとうございました:D – bodokaiser

+0

助けてくれてうれしい... – Rafay

2

JavaScriptの配列は0から始まる ボーデ、ない1

2

あなたの配列あなたのインデックスとして0を使用したいので、1つの要素があります。

alert(data[0].text); 
+0

これはまた私に未定義を返します... – bodokaiser

+2

@ user1246987あなたはjsonレスポンスを解析するか、 'dataType'を' json'に設定する必要があります – Rafay

関連する問題