2010-08-25 4 views
1

Donc, cela devrait être simple dans mon esprit ... J'ai une chaîne JSON valide retourné par un poste Ajax:chaîne JSON avec jQuery.parseJSON Parsing()

{"success":true,"message":"Thank you! We value your feedback."} 

Et je suis tout simplement essayer pour alerter ma valeur « message » sur mon retour de poste résultant:

success: function (result) { 
    alert(result); 
    var obj = $.parseJSON(result); 
    alert(obj.message); 
    }, 
error: function (req, status, error) { 
    alert("Sorry! We could not receive your feedback at this time."); 
    } 

mon « obj » attributs en quelque sorte ne sont pas reconnus ..... J'ai validé la chaîne JSON pour vous assurer qu'il était valide, alors qu'est-ce qui me manque ici?

Répondre

6

Vous ne devriez pas avoir besoin d'analyser votre JSON. Définissez l'attribut dataType sur json et jQuery l'analysera pour vous. Ensuite, result est essentiellement votre JSON et vous pouvez faire alert(data.message);.

jQuery.ajax({ 
    ... 
    dataType: "json", 
    success: function(data) { 
    alert(data.message); 
    }, 
    ... 
}); 
+0

EXCELLENT! Merci beaucoup! – denisb

1

Ce qui peut se produire dans ce cas est que jQuery traite déjà votre résultat en tant qu'objet JSON. Si votre serveur renvoie les données avec un type MIME de application/json, jQuery détectera que vous renvoyez JSON et définira le résultat sur un objet javascript plutôt que sur une chaîne.