如何访问React Native中的json对象字符串
问题描述:
我正在尝试使用wiki引用api来显示来自着名人物(例如Bob Dylan)的引号的应用程序。如何访问React Native中的json对象字符串
请求的URL看起来是这样的:
https://en.wikiquote.org/w/api.php?format=json&action=parse&page=Bob_Dylan&prop=text
我有阵营原住民要求有工作:
componentWillMount() {
Api().then((response) => {
this.setState({
quote:response.parse.text
})
});
}
当我尝试显示报价,但是,它的形式一个对象并在视图中获取[object object]。在控制台中我收到:
可能未处理无极抑制(ID:0): 对象是不是一个做出反应的孩子有效(发现:对象,具有键{})。如果您打算渲染一组儿童,请改用数组,或者使用React附加组件中的createFragment(object)来包装对象。检查
Text
的渲染方法。 不可违反:对象作为React子项无效(找到:带有键的对象{})。如果您打算渲染一组儿童,请改用数组,或者使用React附加组件中的createFragment(object)来包装对象。检查Text
的渲染方法。
当我尝试response.parse.text.*
时,我收到令牌错误。任何建议如何解决这个问题?
答
你必须明确地把response
为Object
,通过调用其json()
方法,如:
var url = 'https://en.wikiquote.org/w/api.php?format=json&action=parse&page=Bob_Dylan&prop=text';
fetch(url)
.then((response) => response.json())
.catch((error) => console.warn("fetch error:", error))
.then((response) => console.log(response.parse))
答
您可以使用response.text()代替response.json( )
var url = 'https://en.wikiquote.org/w/api.php?
fetch(url)
.then((response) => response.text())
.catch((error) => console.warn("fetch error:", error))
.then((response) => console.log(response.parse))
'response.parse.text ['*']'..'*'是一个特殊字符 – azium