2016-09-16 4 views
0

Ich habe eine GET-Funktion und Antwort in JSON. Das ist Funktion:bekomme Variable von JSON-Antwort

$.ajax({ 
     contentType: 'application/json', 
     dataType: 'json', 
     success: function(msg){ 
     var result = JSON.stringify(msg); 
     console.log(result); 
     }, 
     error: error, 
     type: 'GET', 
     url: myurl 
}); 

Erfolg Antwort von ‚Ergebnis‘ ist wie diese {"response":{"values":[{"name":"john","sex":"male"}]}}

Aber wenn ich versuche, den ‚Namen‘ von Antwort zu erhalten, bekomme ich einen Fehler! Dies ist der Fehler:

for(var k in result){ 
     console.log(result[k]); 
    } 

zeigt die Buchstaben

ich das versucht:

$.each(result,function(index, value){ 
    console.log(index, value); 
}); 

aber immer Fehler.

+5

Ähm, du ** Zeichenfolge nur ** es, es ist ein String jetzt, kein Objekt. Verwenden Sie stattdessen 'msg' direkt. – adeneo

+2

Anstatt eine Geschichte über Ihren Code zu erzählen ** post it **. – Amit

+1

Ihre Antwort ist selbst ein JSON-Objekt. Bedeutung, wenn Sie die Schlüssel iterieren möchten, würden Sie nur tun 'für (var k in msg)' – Bwolfing

Antwort

0

Versuchen Sie, die JSON.stringify(msg.response) zu entfernen. Danach sollte msg.response.values[0].name geben john

+0

ich sehe Kann Eigenschaft '0' von undefined nicht lesen –

+0

@KonstantinMokhov Aktualisierte die Antwort. Versuche es jetzt. –

+0

Grund für die Down-Abstimmung? –

0

Die Antwort, die Sie erhalten, ist selbst ein JSON-Objekt. Sie können durch das Objekt iterieren und den Namen aus dem Objekt abrufen.

+1

[Es gibt kein "JSON-Objekt"] (http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json) /) – adeneo

0

können Sie den Wert von json Zugriff selbst

var response = {"response":{"values":[{"name":"john","sex":"male"}]}}; 
 

 
var getName = response.response.values[0].name; 
 

 
alert(getName);

Verwandte Themen