2011-10-23 6 views
0

J'ai une erreur de liste Entité que j'ai utilisée pour transmettre errorId et un message d'erreur à la couche d'interface utilisateur. J'envoie l'objet au Javascript Je le sérialise à JSON.Parse Json Objet

JSON Je me fais après que le regard de sérialisation comme

[{"ErrorId":1,"ErrorMessage":"Test has not been prepared for tag EP105"},{"ErrorId":2,"ErrorMessage":"Test has not been prepared for tag EP105"}] 

Maintenant, je dois analyser cette chaîne JSON pour afficher le message d'erreur à l'utilisateur. S'il vous plaît laissez-moi savoir comment puis-je l'analyser. Ai-je besoin d'écrire une boucle for pour y passer.

EDIT Dans ma page maître, j'essaie de l'analyser.

function ShowErrorMsg(jsonObject) { 
    for (i = 0; i < jsonObject.Object.length; i++) { //Object is undefined here. 
    alert(jsonObject.Object.ErrorMessage); 
    }   
} 
+1

vous utilisez les bibliothèques AJAX comme jquery ? Certains navigateurs ont la capacité native d'analyser la chaîne JSON. Quel (s) est (sont) votre navigateur (s) cible – deostroll

Répondre

2

Préférez JSON.parse() si elle est disponible:

var jsonArray = JSON.parse(serializedString); 
window.alert(jsonArray[0].ErrorMessage); 

revenir à eval() autrement:

var jsonArray = eval(serializedString); 
window.alert(jsonArray[0].ErrorMessage); 
+0

Quelle est la meilleure façon de le faire. Eval serait-il en sécurité? –

+0

La meilleure façon de le faire est d'utiliser 'JSON.parse()', qui ne fait qu'analyser le sous-ensemble de Javascript utilisé par JSON et est plus sûr que 'eval()'. –

+0

Vous devriez utiliser une librairie comme jQuery qui devrait implémenter le repli si votre navigateur ne supporte pas JSON.parse(). – Jamie

0

Essayez Json.NET

+0

J'essaie de l'analyser dans mon fichier de script. –

+0

plz donner plus d'informations ... vous voulez dire via javascript ... – deostroll

0

Il y a un soutien dans la plupart des navigateurs pour l'analyse syntaxique JSON, je recommande d'utiliser jQuery pour cette - vous pouvez aussi jeter un oeil à this

Attention - Il est préférable d'utiliser une bibliothèque - et ne pas utiliser JS pour cela (JS est du diable;))