/ / Problèmes d'analyse JSON de PHP - php, javascript, json

Problèmes d'analyse de JSON depuis PHP - php, javascript, json

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 № 1

Vous 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 ().

http://json.org/js.html

Vous pouvez utiliser sa fonction json parse / stringify à la place

http://json.org/json2.js