javascript - 从 HTML 文本文件中提取 JSON 对象
问题描述
我有我试图从 HTML 文件中提取的对象。
<h1> heading</h1>
<p> dsfhklsd sdlfjklsdj ljsdkflj</p>
{"data" : {"here" : "test"} }
<h2> heading</h2>
<p> dsfhklsd sdlfjklsdj ljsdkflj</p>
<p> dsfhklsd sdlfjklsdj ljsdkflj</p>
{"data2" : {"here" : "test"} }
我将如何提取对象,然后我可以用 JSON.parse() 解析它们并在我的 JS 代码中使用它们?
基本上从文本/html文件中剥离任何不是对象的东西。
{"data" : {"here" : "test"} }
{"data2" : {"here" : "test"} }
解决方案
您可以遍历节点并选择文本节点。
var objs = Array.from(document.body.childNodes) // select all the nodes
.filter( // pick out just the lines we want
node =>
node.nodeType === Node.TEXT_NODE && // text node
node.nodeValue.trim().length // get rid of line feeds
).map(node =>
JSON.parse(node.nodeValue.trim())) // convert to object
console.log(objs)
<h1> heading</h1>
<p> dsfhklsd sdlfjklsdj ljsdkflj</p>
{"data" : {"here" : "test"} }
<h2> heading</h2>
<p> dsfhklsd sdlfjklsdj ljsdkflj</p>
<p> dsfhklsd sdlfjklsdj ljsdkflj</p>
{"data2" : {"here" : "test"} }
推荐阅读
- javascript - 当我使用 jquery 滚动窗口时试图获得警报
- vb.net - Visual basic 10.0 不支持异步方法或 lambda
- javascript - Mongoose 填充数组为空
- php - composer中key packagegist的含义
- c# - 使用 C# 为 XmlSerializer 初始化 XML 成员
- javascript - 在node.js中,控制台显示成功日志,但是localhost:3000没有连接
- typing - 在 python 3.7 中,如何检查 x=typing.List[str] 是“属于”typing.List 的?
- java - getClassLoader().getResource() 和斜杠 '/'
- vba - 通过 ODBC 驱动程序(DSN-less)使用 ADO 库将 PostgreSQL 链接到 MS Access
- r - 创建具有多个相同变量子集的新数据框