2016-09-16 3 views
0

J'ai une fonction GET et une réponse dans JSON. Cette fonction est :get variable de la réponse json

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

réponse de succès du « résultat » est comme ça {"response":{"values":[{"name":"john","sex":"male"}]}}

Mais lorsque je tente d'obtenir le « nom » de la réponse, je reçois une erreur! Ceci est l'erreur:

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

affiche les lettres

J'ai essayé:

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

mais toujours obtenir erreur.

+5

Uhm, vous venez ** ** il de chaîne de caractères, il est maintenant une chaîne, pas un objet. Utilisez 'msg' directement à la place. – adeneo

+2

Au lieu de raconter une histoire sur votre code ** postez-le **. – Amit

+1

Votre réponse est, elle-même, un objet JSON. Signification si vous voulez itérer les clés, vous feriez juste 'pour (var k en msg)' – Bwolfing

Répondre

0

Essayez de supprimer le JSON.stringify(msg.response). Après quoi, msg.response.values[0].name devrait donner

+0

je vois Impossible de lire la propriété '0' de non défini –

+0

@KonstantinMokhov Mis à jour la réponse. Essayez maintenant. –

+0

Raison du vote négatif? –

0

La réponse que vous obtenez est elle-même un objet json.Vous pouvez itérer à travers l'objet et obtenir le nom de l'objet.

+1

[Il n'y a pas d'objet "JSON"] (http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json /) – adeneo

0

Vous pouvez accéder à la valeur de JSON se

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

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

 
alert(getName);