2009-08-31 8 views
1

J'essaie d'appeler JSON.parse, où l'une des valeurs est html. J'ai essayé d'exécuter HtmlEncode, en vain. FF semble fonctionner correctement, mais IE7 génère une erreur.JSON.parse contenu Html

Voici un exemple de ma chaîne json que je souhaite analyser.

[{"Title":"Bed","ImageUrl":"~\\/Test\\/sample-product.ashx?w=410","ProductUrl":"\\/products\\/AB10005.aspx","Description":"\r\n\t\t<p>New Bed</p>\r\n","Colours":"Brown, Black, Blue","ProductCode":"AB10005","RRP":"50.000000"},{"Title":"Sample01","ImageUrl":"~\\/Test\\/sample-product.ashx?w=410","ProductUrl":"\\/products\\/Sample01.aspx","Description":"\r\n\t\t<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr,%XA0 sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,%XA0 sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,%XA0 sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>\r\n","Colours":"Black, Green, Blue","ProductCode":"Sample01","RRP":""}] 

EDIT: J'utilise json2

EDIT: code Javascript:

var fItems = JSON.parse(result); 
résultat

est une chaîne JSON, qui est comme ci-dessus. J'ai remplacé tous les \ t's \ n's.

+0

Utilisez-vous une bibliothèque JavaScript en particulier pour la méthode d'analyse? Utilisez-vous l'analyseur/stringificateur JSON officiel? (http://www.json.org/js.html) –

+0

J'utilise json2 – mickyjtwin

+0

Pouvez-vous poster le code JavaScript qui appelle JSON.parse? –

Répondre

1

Le \ r, \ n, \ t causait des problèmes. Une fois que j'ai remplacé ces caractères, tout semblait fonctionner correctement.

 j = j.replace(new RegExp("\n","g"),""); 
     j = j.replace(new RegExp("\t","g"),""); 
     j = j.replace(new RegExp("\r","g"),""); 
+0

Vous pouvez combiner cela en une expression régulière, telle que: j = j.replace (nouveau RegExp ("[\ n | \ t | \ r]", "g"), ""); –

+1

Cette regex pourrait être rendue beaucoup plus courte - 'j = j.replace (/ [\ n \ t \ r]/g, '');' – kangax

Questions connexes