Comment décoder correctement une chaîne JSON codé à l'aide de Html.Raw(Json.Coder(Modèle))?

Je suis d'encodage de certains modèle de données dans un élément html comme ceci:

@Html.Raw(Json.Encode(Model));

La chaîne json retourné ressemble à ceci:

{"TestList":[{"FrequencyType":"1X","GCDs":"585.6","Identifier":"6144","SeqNo":9306,"SeqNoSpecified":true,"TSeqNo":8314,"TSeqNoSpecified":true,"TestDescr":"HBsAg"},{"FrequencyType":"1X","GCDs":"585.6","Identifier":"6124","SeqNo":9295,"SeqNoSpecified":true,"TSeqNo":8315,"TSeqNoSpecified":true,"TestDescr":"HCV Ab"},{"FrequencyType":"1X","GCDs":"585.3","Identifier":"6","SeqNo":9729,"SeqNoSpecified":true,"TSeqNo":8309,"TSeqNoSpecified":true,"TestDescr":"HD Monthly LS"}],"Frequency":[{"Key":"ANNUAL","Value":"Annually"},{"Key":"BIMONTH","Value":"Bi-Monthly"},{"Key":"BIWEEK","Value":"Bi-Weekly"},{"Key":"MON","Value":"Monthly"},{"Key":"1X","Value":"One Time"},{"Key":"QTR","Value":"Quarterly"},{"Key":"SMAN","Value":"Semi-Annual"},{"Key":"WEEK","Value":"Weekly"}]};

Quand j'essaie d'analyser ce à l'aide de JSON.parse, j'obtiens une erreur:

arrayTestList = [];
var jsonTestList = $('#TestList').text();
jsonTestList = JSON.stringify(jsonTestList);
arrayTestList = JSON.parse(jsonTestList);
alert(arrayTestList.TestList[0]); //<===== this line is failing

Unable to get value of the property '0': object is null or undefined

Comment puis-je convertir ce jsonTestList chaîne dans un tableau javascript afin que je puisse accéder à des éléments de arrayTestList correctement?

Edit:

Désolé, j'ai oublié de mentionner mon montage. Fondamentalement code javascript ci-dessus est à l'intérieur d'une Vue Partielle 2. Le code où je suis encodage json le modèle est dans une autre Vue Partielle 1. À partir de P V 2, je ne peut pas accéder au modèle objet de P V 1, donc je suis en train de verser le contenu dans un div balise, afin que je puisse accéder à cette liste TestList élément.

  • Notez que l'utilisation de Html.Raw est dangereux. si votre objet json champs ne sont pas désinfectés, vous êtes ouvert aux attaques XSS. par exemple. une de vos TestDescr propriétés de "</div><script>alert('piraté')</script>" (en supposant que votre json est écrit à l'intérieur d'un élément div). Quand c'est sorti, il va fermer votre ouverture élément div, et le navigateur va alors interpréter la balise de script suivante dans le cadre du dom html et d'exécuter tout ce qui est à l'intérieur.
InformationsquelleAutor Animesh | 2013-07-15