我正在尝试将 HTML 映射到结构完整的 JSON。是否有任何库可以执行此操作,或者我需要自己编写吗?我想如果那里没有 html2json 库,我可以从 xml2json 库开始。毕竟,html 只是 xml 的变体,对吧?
更新: 好的,我应该举个例子。我想做的是以下内容。解析一串html:
<div>
<span>text</span>Text2
</div>
像这样变成一个 json 对象:
{
"type" : "div",
"content" : [
{
"type" : "span",
"content" : [
"Text2"
]
},
"Text2"
]
}
注意:如果您没有注意到标签,我正在寻找 Javascript 中的解决方案
原文由 Julian Krispel-Samsel 发布,翻译遵循 CC BY-SA 4.0 许可协议
我刚刚写了这个函数来做你想要的;尝试一下,如果它对您不起作用,请告诉我:
工作示例:http: //jsfiddle.net/JUSsf/ (在 Chrome 中测试,我不能保证完整的浏览器支持 - 你必须测试这个)。
它创建一个对象,其中包含您请求的格式的 HTML 页面的树结构,然后使用
JSON.stringify()
大多数现代浏览器(IE8+、Firefox 3+ .etc)中都包含该对象;如果您需要支持旧版浏览器,您可以包含 json2.js 。它可以采用 DOM 元素或
string
包含有效的 XHTML 作为参数(我相信,我不确定DOMParser()
在某些情况下是否会阻塞,因为它被设置为"text/xml"
或者它是否不提供错误处理。不幸的是"text/html"
浏览器支持很差)。您可以通过将不同的值传递为
element
来轻松更改此函数的范围。无论您传递什么值,都将成为 JSON 映射的根。