【问题标题】:JSON.parse Html contentJSON.parse Html 内容
【发布时间】:2009-08-31 04:57:06
【问题描述】:

我正在尝试调用 JSON.parse,其中一个值是 html。我曾尝试运行 HtmlEncode,但无济于事。 FF 似乎可以正常工作,但是 IE7 会引发错误。

这是我希望解析的 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);

result 是一个 json 字符串,如上。我已经替换了所有的\r的\n的\t的。

【问题讨论】:

  • 您是否使用任何 JavaScript 库,特别是用于 parse 方法?你在使用官方的 JSON 解析器/字符串化器吗? (json.org/js.html)
  • 你能贴出调用 JSON.parse 的 JavaScript 代码吗?

标签: c# javascript json


【解决方案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"), "");

【讨论】:

  • 您可以将其组合成一个正则表达式,例如:j = j.replace(new RegExp("[\n|\t|\r]","g"),"") ;
  • 该正则表达式可以更短 - j = j.replace(/[\n\t\r]/g, '');
猜你喜欢
  • 2020-08-18
  • 2021-01-03
  • 1970-01-01
  • 2015-03-18
  • 1970-01-01
  • 2011-07-04
  • 2015-12-04
  • 2014-02-05
  • 2015-09-22
相关资源
最近更新 更多