所以基本上我向服务器请求一个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应用程序中的对象中提取该字符串。
答案 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);

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