从ReactNative中的Promise获取JSON对象的各个值

时间:2017-02-08 08:51:53

标签: javascript json react-native promise

我正在使用反应原生文档(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"}

提前致谢!

1 个答案:

答案 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建议的那样,使用你看到的对象,即区分大小写。