我正在使用反应原生文档(https://facebook.github.io/react-native/docs/network.html)中描述的fetch方法从服务器获取数据。
这是我获取数据的代码
let responseJson = await response.json();
if(response.status>=200&&response.status<300){
//this.setState({error:" "});
let alldata=responseJson;
console.log("All data "+alldata);
}else{
let error=responseJson;
throw error;
}
return responseJson;
我知道responseJson是一个promise对象,所以我试图像这样解决它不起作用。
let abc= this.fetchUserDate(accessToken);
abc.then(function(v) {
console.log(v.Bio+" "+v.Website+" "+typeof(v));
});
除了使用v.Bio之外,我还尝试过使用v [0],v [1]等等无济于事。控制台打印未定义。但是当我使用
时let responseJson = await response.text();
我以纯文本格式获取数据,因此服务器端没有错误。如何获取JSON的各个组件?我的JSON包含以下基本配置文件信息:
{"bio":"I am a cool guy","website":"www.cool.com","gender":"M","avatar":"/media/images/avatar/blank.png"}
提前致谢!
答案 0 :(得分:-1)
您正在调用response.text()。尝试调用response.json()。
这是来自文档
try {
let responseJson = await response.json();
console.log(responseJson);
return responseJson;
} catch(error) {
console.error(error);
}
}
你必须在try块中使用响应,因为它不会立即解决。
尝试在responseJson对象上执行console.log以查看实际返回的内容。正如@ Jaromanda-x建议的那样,使用你看到的对象,即区分大小写。