首页 > 解决方案 > 从 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"} }

标签: javascriptjson

解决方案


您可以遍历节点并选择文本节点。

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"} }


推荐阅读