2009-10-08 9 views
0

Je reçois une réponse de mon serveur via AJAX avec un tableau qui est json_encode (fonction php). Cependant, j'ai de la difficulté à l'analyser.Problèmes analyse JSON à partir de PHP

Je peux le faire:

alert(response); 

Mais il me donne juste un tas de texte comme ceci:

[{ "user_id": "Dev_V2_MEH_0910_M03_v03c_NEW_CODE_03" ...... "grouper_opae_algorithm" : "nap_v42lp"}]

S'il vous plaît noter, je découpe beaucoup. J'ai essayé ceci:

alert(response[0].user_id); 

Cela me donne juste undefined.

Qu'est-ce que je fais mal?

Répondre

5

Vous le récupérez en tant que 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 cela. Sinon, vous pouvez utiliser eval:

object = eval('(' + response + ')'); 

Cela n'ouvre des failles de sécurité bien - si une fonction a été injectée dans le JSON, il serait exécuté.

+2

Que faire si j'utilise JQuery. Est-ce getJson()? – Abs

+3

Oui, vous devez utiliser la méthode getJSON(): http://docs.jquery.com/Ajax/jQuery.getJSON – Greg

+0

... et vous avez besoin d'un autre guillemet simple. (: – peirix

1

La façon la plus simple pour analyser JSON est avec la commande eval():

json = eval(response); 
alert(json[0].user_id); 

Il est préférable d'utiliser les bibliothèques comme Prototype ou jQuery pour aider à désinfecter votre JSON si la source est non fiable.

+0

Source est approuvé son mon propre serveur, mais je préfère utiliser JQuery. Est-ce la fonction getJSon()? – Abs

+0

Vous avez besoin de parenthèses autour de la réponse – Greg