如何通过JSON发送HTML(在JS / Node中)

时间:2013-06-18 16:37:48

标签: html json node.js

我试图从只能返回有效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")这样的查询关于该数据。

这样做的正确方法是什么?任何可以处理逃逸的特殊库/方法?我用谷歌搜索了它,但没有任何明确的结果......

感谢。

2 个答案:

答案 0 :(得分:0)

在接收端,您只需撤消JSON序列化即可。那就是它!

您的HTML将以obj.html的常规格式显示,然后您可以使用您想要的任何DOM解析器进行解析。

答案 1 :(得分:0)

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

以下similar question以及this web page解释了您需要考虑的一些内容。

简要地看一下npmsj.org,我没有看到任何可以帮助你使HTML JSON兼容的信誉良好的模块,但我认为你可以自己很容易地找到它,因为有足够大的HTML样本集。您始终可以通过this validator运行JSON来检查它。我想你也可以简单地在它上面做一个JSON.parse(jsonContainingHtml)。如果字符串无效JSON,您将收到异常。