2016-11-17 5 views
0

Dies ist mein Javascript-Code die Antwort eines getJSON zu handhaben:getJSON Antwort Handhabung

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

Der erste Alarm tut Feuer und gibt mir dies:

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

Warum ist mein zweiter Alarm nicht angezeigt ?

was fehlt mir hier?

+0

tun 'response.connected_friends [ "id"]' –

Antwort

1

sollten Sie tun

response.connected_friends["id"]

oder

response.connected_friends.id

, wie es ein Objekt ist kein Array

+0

warum dann funktioniert response.connected_friends? Ist das nicht ein Objekt? und warum keine "undefinierte" Warnung? – Mart

+0

Bitte versuchen Sie es. Es wird Konsolenfehler auslösen. Bitte überprüfen Sie Ihre Browser-Konsole. –

+0

Es tut mir leid, dass Sie Recht haben, ich sehe jetzt, dass ich kein Array zu meinem connection_friends Array hinzugefügt habe, aber ich änderte connected_friends zu diesem Array – Mart

1

Sieerwarten können 0 aber die API kann auch eine object zurückgeben, so dass Sie beide Fälle behandeln müssen.

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

in diesem Fall richtig, aber die Antwort von @Parth ich weiß, was ich habe falsch gemacht und jetzt werde ich immer ein Array zurückgegeben haben. thx obwohl! – Mart

+0

'connected_friends' ist pluralisiert, also habe ich erwartet, dass es ein 'Array' zurückgeben kann. – Maxali

Verwandte Themen