J'obtiens une réponse de mon serveur via AJAX avec un tableau qui est json_encode (php funciton). Cependant, j'ai du mal à l'analyser.
Je peux le faire:
alert(response);
Mais ça me donne juste un tas de texte comme ça:
[{"user_id": "Dev_V2_MEH_0910_M03_v03c_NEW_CODE_03" ...... "grouper_opae_algorithm": "nap_v42lp"}]]
Veuillez noter que j'en ai découpé beaucoup. J'ai essayé ceci:
alert(response[0].user_id);
Cela me donne juste indéfini.
Qu'est-ce que je fais mal?
Réponses:
5 pour la réponse № 1Vous le récupérez sous forme de chaîne - vous devez le convertir en objet.
Si vous utilisez une bibliothèque comme jQuery ou Prototype, il y aura une méthode intégrée pour ce faire. Sinon, vous pouvez utiliser eval:
object = eval("(" + response + ")");
Cela ouvre cependant quelques failles de sécurité - si une fonction était injectée dans le JSON, elle serait exécutée.
1 pour la réponse № 2
La façon la plus simple d'analyser JSON est d'utiliser la commande eval ():
json = eval(response);
alert(json[0].user_id);
Il vaut mieux utiliser des bibliothèques comme Prototype ou jQuery pour vous aider à nettoyer votre JSON si la source n'est pas fiable.
0 pour la réponse № 3
Vous pouvez aussi Télécharger la analyseur JSON officiel pour javascript, qui vous permettrait de faire:
var myObj = JSON.parse(respsonse);
0 pour la réponse № 4
Crockford ne recommande pas la fonction eval ().
Vous pouvez utiliser sa fonction json parse / stringify à la place