2010-10-06 8 views
3

Je reçois cette réponse à partir d'une requête Ajax. Javascript semble l'interpréter comme une chaîne de caractères. (Quand je dis alerte this.responseText, toute la chaîne est affichée)convertir la chaîne en tableau json

Comment puis-je le convertir en objet javascript (JSON)?

{"response": { 
    "success": "The activity has been removed", 
    "message": "0" 

    } 
} 

Je n'utilise pas jquery.

+0

en utilisant un prototype ou un javascript natif? – Detect

+0

La raison peut être le code "http status". Vérifiez le code d'état http (via F12 dans IE ou Firebug dans FF) pour voir si c'est 200 (= OK) ou non. – Tohid

+0

Découvrez http://stackoverflow.com/questions/45015/safely-turning-a-json-string-into-an-object – Detect

Répondre

2

Ce n'est pas la chose la plus sûre dans le monde, mais vous pouvez faire ceci:

var value = null, txt = this.responseText; 
eval("value = (" + txt + ")"); 

Il est peut-être un peu plus sûr de le faire:

var value = null, txt = this.responseText; 
!function(window) { eval("value = (" + txt + ")"); }(); 

mais il y a encore toutes sortes de potentiel hacks. Tu ferais mieux d'utiliser une bibliothèque.

+0

Les utilisateurs cibles sont les BlackBerry. La plupart des bibliothèques ne fonctionnent pas (bien ou pas du tout) avec des BB plus anciens. J'essaie XUI, mais je n'ai pas encore compris ses capacités JSON. – robert

+0

Cette réponse fonctionne également pour moi: http://stackoverflow.com/a/9904328/538387 – Tohid

15

Si vous utilisez jQuery, JSON.parse(this.responseString); ou jQuery.parseJSON(this.responseString); devrait fonctionner.

Questions connexes