>我正在使用反应本机文档(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 是一个承诺对象,所以我试图像这样解决它,这不起作用。
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"}
提前感谢!
你正在调用 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 建议的那样,使用您看到的对象,即区分大小写。