我想将从网络请求中接收到的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?
提前感谢
答案 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中的预期效果。