0

我正在尝试从只能返回有效 JSON的服务返回一个 html 片段。

我尝试了一些类似的东西:

这让我得到了一堆字符,如 \n\n\n\n\t\t\t\t

return JSON.stringify({html: $('body').html()});

或者

return JSON.stringify($('body').html());

在接收端,我希望能够通过 Cheerio、jQuery 或 JSDom 解析该 HTML,这样我就可以对该数据运行类似$(".some_selector")的查询。

这样做的正确方法是什么?任何可以为我处理转义的特殊库/方法?我google了一下,没有明确的结果。。。

谢谢。

4

2 回答 2

0

在接收端,您只需撤消 JSON 序列化。而已!

您的 HTML 将采用常规格式obj.html,然后您可以使用所需的任何 DOM 解析器对其进行解析。

于 2013-06-18T16:54:39.650 回答
0

好吧,您可能需要担心 HTML 中的引号(例如属性),因为这可能会干扰分隔 JSON 值的引号。

这是类似的问题以及解释您需要考虑的一些内容的网页。

简单地看一下 npmsj.org,我没有看到任何有信誉的模块可以帮助您使 HTML JSON 兼容,但我认为如果有足够大的 HTML 样本集,您可能很容易自己弄清楚。你总是可以通过这个验证器运行你的 JSON来检查它。我想你也可以简单地对它做一个 JSON.parse(jsonContainingHtml) 。如果字符串不是有效的 JSON,您将收到异常。

于 2013-06-18T18:57:14.613 回答