2016-11-17 11 views
0

これはgetJSONの応答を処理するために私のJavascriptコードです:getJSON応答

$.getJSON(url, { 
      userID:userID, 
      unique:unique 
     }, function(response) { 
      alert(JSON.stringify(response)); 
      if(response.connection_status == true) { 
       alert(response.connected_friends[0].id); 
      } 
     }); 

最初のアラートは火を行い、この私に与える:

{ "connection_status":true, 
    "hasResults":true, 
    "connected_friends":{ 
    "id":"1055", 
    "name":"My Name" 
    } 
} 

はなぜ私の第二のアラートが表示されていません?

私はここで何が欠けていますか?

+0

do response.connected_friends ["id"] ' –

答えて

1

それはオブジェクトないあなたが期待するかもしれアレイ

+0

なぜresponse.connected_friendsは機能しますか?これはオブジェクトではありませんか?なぜ「未定義」警告が表示されないのですか? – Mart

+0

これを試してください。コンソールエラーが発生します。ブラウザのコンソールを確認してください。 –

+0

あなたが正しいとは申し訳ありませんが、今私はconnection_friends配列に配列を追加していないことがわかりますが、この配列にconnected_friendsを変更しました – Mart

1

あるとしてあなたは

response.connected_friends["id"]

または

response.connected_friends.id

を行う必要がありますarrayでもAPIはobjectを返すことがあるので、両方のケースを処理する必要があります。

if(response.connected_friends instanceof Array && response.connected_friends.length) { 
    alert(response.connected_friends[0].id); 
else { 
    alert(response.connected_friends.id); 
} 
+0

この場合、正しいですが、@parthの答えを見ました。間違って、今はいつも配列が返されます。しかしね! – Mart

+0

'connected_friends'が複数化されているので、 'Array'を返すことができると思いました。 – Maxali