在react-native中将HTML转换为JSON

时间:2018-12-30 00:33:19

标签: javascript html json react-native

我想将从网络请求中接收到的HTML转换为JSON,以便可以轻松读取值。
如果有直接从HTML读取值的方法,请在注释中告诉我
我找到了这个库:https://github.com/andrejewski/himalaya
但是当我尝试在我的应用程序中运行该示例时,出现错误Cannot read property prototype of undefined,因此我认为该库在react-native中不起作用,因为它包含一个核心Node JS模块。
这是代码:

import {parse} from 'himalaya'
const html = this.state.html
const json = parse(html)
console.log('', json)

一些示例html可能是:

<div class='post post-featured'>
  <p>Himalaya parsed me...</p>
  <!-- ...and I liked it. -->
</div>

此html的预期输出为:

[{
  type: 'element',
  tagName: 'div',
  attributes: [{
    key: 'class',
    value: 'post post-featured'
  }],
  children: [{
    type: 'element',
    tagName: 'p',
    attributes: [],
    children: [{
      type: 'text',
      content: 'Himalaya parsed me...'
    }]
  }, {
    type: 'comment',
    content: ' ...and I liked it. '
  }]
}]

是否有其他方法/库可以在React Native中将HTML转换为JSON?
提前感谢

1 个答案:

答案 0 :(得分:1)

使用您在React Native中提到的包没有问题。遵循所有必需的步骤,一切都会按预期进行:

安装himalaya

cd project_dir
npm install himalaya

在文件顶部添加所需的import

import {parse} from 'himalaya';

在解析HTML结果之前 之前,在代码中的html中将state属性设置为this.setState = { html: '<div>Example HTML content</div>' };

parse

使用const html = this.state.html; const json = parse(html); alert(JSON.stringify(json)); 对象将HTML转换为JSON:

$

您可以检查以上代码在this Snack中的预期效果。