2009-08-31 67 views
1

我想调用JSON.parse,其中的一个值是html。我试过运行HtmlEncode,无济于事。 FF似乎工作正常,但IE7引发错误。JSON.parse Html内容

这是我想分析的json字符串的一个例子。

[{"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":""}] 

编辑:我使用json2

编辑:Javascript代码:

var fItems = JSON.parse(result); 

结果是JSON字符串,其是如上述。我已经替换了所有的\ n's \ t's。

+0

您是否特别为解析方法使用了任何JavaScript库?你使用官方的JSON解析器/字符串吗? (http://www.json.org/js.html) – 2009-08-31 05:02:38

+0

我正在使用json2 – mickyjtwin 2009-08-31 05:26:41

+0

您可以发布调用JSON.parse的JavaScript代码吗? – 2009-08-31 05:29:35

回答

1

\ r,\ n,\ t正在引发问题。一旦我替换了这些角色,一切似乎都可以正常工作。

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

您可以将它合并为一个正则表达式,例如: j = j.replace(new RegExp(“[\ n | \ t | \ r]”,“g”),“”); – 2009-08-31 06:38:05

+1

这个正则表达式可以做得更短 - 'j = j.replace(/ [\ n \ t \ r \]/g,'');'' – kangax 2009-08-31 12:56:47