我试图从只能返回有效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")这样的查询关于该数据。
这样做的正确方法是什么?任何可以处理逃逸的特殊库/方法?我用谷歌搜索了它,但没有任何明确的结果......
感谢。
答案 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,您将收到异常。