如何从Ionic 3中的服务器发送的JSON对象的值进行检索

时间:2018-01-31 09:35:54

标签: angularjs json ionic-framework ionic2 ionic3

所以基本上我向服务器请求一个post请求,然后以这种形式在JSON对象中发送一个令牌:

{
   token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjIyLCJpc3MiOiJodHRwczovL2hvYnVkZGllcy5jb20vYXBpL2F1dGgvbG9naW5fYXBpIiwiaWF0IjoxNTE3MzkwNTkwLCJleHAiOjE1MTczOTQxOTAsIm5iZiI6MTUxNzM5MDU5MCwianRpIjoiWUxtdXJ5TkV2UzlwSEExTyJ9.nWV7OWLYdMJmZCHNP9tFuAmZ84DwzYO00O3jQ_RfhXQ"
}

我需要的是使用apiUrl附加该令牌以获取当前登录用户的相应信息。 服务器将此JSON对象返回到变量" result"如下图所示:

// for login the user in the app.
 loginUser() {
//values from the login form
var data = {
  email: this.emailVar,
  password: this.passwordVar
}
//calling the loginUser method from the Provider: Test.ts
this.restProvider.loginUser(data)
  .then((result) => {
    //storing the returned Token from the server.
    var login_token = result;
    //storing the retured Token into Ionic Storage.
    this.storage.set("tokenn", result);
    console.log(result);
    console.log('success');
    //if successful, then set the rootPage to TabsPage
    this.navCtrl.setRoot(TabsPage);
  }, (err) => {
    console.log(err);
  });

但是当我追加存储在存储中的结果时,它附加了那个已经存在的对象,我只需要字符串。

我只需要这个:

" eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjIyLCJpc3MiOiJodHRwczovL2hvYnVkZGllcy5jb20vYXBpL2F1dGgvbG9naW5fYXBpIiwiaWF0IjoxNTE3MzkwNTkwLCJleHAiOjE1MTczOTQxOTAsIm5iZiI6MTUxNzM5MDU5MCwianRpIjoiWUxtdXJ5TkV2UzlwSEExTyJ9.nWV7OWLYdMJmZCHNP9tFuAmZ84DwzYO00O3jQ_RfhXQ"

那么,如何从我的Ionic应用程序中的对象中提取该字符串。

3 个答案:

答案 0 :(得分:2)

您要做的是将整个JSON存储,即从服务器返回的结果变量' tokenn'。

而是尝试将结果中的标记映射到只存储字符串部分。

//storing the retured Token into Ionic Storage.
this.storage.set("tokenn", result['token']);
console.log(result);

答案 1 :(得分:1)

很简单:

let loginToken = JSON.parse(result).token; console.log(loginToken); //Will print exactly what you need 然后您可以将登录令牌存储在存储中。

基本上使用JSON.parse,您将JSON转换为对象

答案 2 :(得分:1)

因为您将整个对象存储在存储中。 你可以用两种方式解决这个问题 1.您只将字符串存储到存储并访问它。



this.storage.set("tokenn", result.token);
const result = this.storage.get("tokenn");
console.log(result);




  1. 存储整个JSON并仅访问字符串
  2. 
    
    this.storage.set("tokenn", result);
    const result = this.storage.get("tokenn");
    console.log(result.token);