Rez*_*eza 5 xml json react-native
我正在开发一个移动应用程序react-native,我必须调用一个返回的odata服务,XML我需要将它转换为jsonobject.
我该怎么办?
return fetch(url, {
method: 'GET',
headers: {
Authorization: config.api.auth,
},
})
.then(response => response.json())
// .then(response => response.text())
// .then(xml => _xmlToJson(xml))
.then(json => dosomething(json))
.catch(ex => showError(ex));
};
Run Code Online (Sandbox Code Playgroud)
我试图text()转而json()将其传递给另一个转换xml为的方法,json但问题是该方法需要一个xml object但text()返回字符串,而我无法找到react-native转换string为的方法xml.
ps由于React Native使用JavaScriptCore,它只是一个javascript解释器,所以没有浏览器对象模型,没有文档对象,没有窗口等可以使用
虽然 Daniel Schmidt 的答案是正确的,但我使用了本文中描述的方法,使用 React Native 和 Siphon 构建 YouTube 播放列表浏览器
npm install xmldom
Run Code Online (Sandbox Code Playgroud)
var DOMParser = require('xmldom').DOMParser;
Run Code Online (Sandbox Code Playgroud)
parseVideos: function(s) {
console.log('Parsing the feed...');
var doc = new DOMParser().parseFromString(s, 'text/xml');
var objs = [];
var videos = doc.getElementsByTagName('yt:videoId');
var thumbs = doc.getElementsByTagName('media:thumbnail');
for (var i=0; i < videos.length; i++) {
objs.push({
id: videos[i].textContent,
thumbnail: thumbs[i].getAttribute('url')
})
}
this.setState({videos: objs});
},
Run Code Online (Sandbox Code Playgroud)