Khu*_*shi 31 javascript typescript angular
我有这样一个数组:
[{name:"test", time:"Date 2017-02-03T08:38:04.449Z"}]
Run Code Online (Sandbox Code Playgroud)
我存储它,localstorage当我从中检索数据时localstorage得到了值:
[object, object]
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
config.ts
import { Injectable } from "@angular/core";
@Injectable()
export class TokenManager {
public tokenKey: string = 'app_token';
constructor() { }
store(content) {
var contentData;
console.log("inside localstorsge store:", content);
contentData = content.map(
(data) => data.name
)
console.log("contentData:", contentData)
localStorage.setItem(this.tokenKey, content);
}
retrieve() {
console.log("inside localstorage");
let storedToken: any = localStorage.getItem(this.tokenKey);
console.log("storedToken:", storedToken);//====> here this console is[object object]
if (!storedToken) throw 'no token found';
return storedToken;
}
}
Run Code Online (Sandbox Code Playgroud)
Cur*_*dev 60
本地存储仅限于处理字符串键/值对,您可以像下面一样使用JSON.stringify和获取值JSON.parse
var testObject ={name:"test", time:"Date 2017-02-03T08:38:04.449Z"};
Run Code Online (Sandbox Code Playgroud)
将对象存入存储:
localStorage.setItem('testObject', JSON.stringify(testObject));
Run Code Online (Sandbox Code Playgroud)
从存储中检索对象:
var retrievedObject = localStorage.getItem('testObject');
console.log('retrievedObject: ', JSON.parse(retrievedObject));
Run Code Online (Sandbox Code Playgroud)
小智 10
如果没有字符串格式,则无法存储某些内容。
LocalStorage始终以字符串格式存储键和值。
这就是为什么您应该将数据转换为字符串,无论它是Array或Object。
要将数据存储在 localStorage 中,首先使用JSON.stringify()方法对其进行字符串化。
var myObj = [{name:"test", time:"Date 2017-02-03T08:38:04.449Z"}];
localStorage.setItem('item', JSON.stringify(myObj));
Run Code Online (Sandbox Code Playgroud)
然后当你想要检索数据时,你需要再次将String解析为Object。
var getObj = JSON.parse(localStorage.getItem('item'));
Run Code Online (Sandbox Code Playgroud)
回答有点晚了,但是我想回答,直到将来的观众可以使用它,javascript通过引用使用对象,然后当我们将对象存储到localStorage时,实际上我们存储的是对象的地址,而不是对象的内容!然后,如果我们要存储对象内容(绝对是我们想要的),则应执行以下操作:
像这样存储:
localStorage.setItem('my_item', JSON.stringify(my_object));
Run Code Online (Sandbox Code Playgroud)
并像这样使用:
var my_object = JSON.parse(localStorage.getItem('my_item'));
Run Code Online (Sandbox Code Playgroud)
希望对您有所帮助:)
| 归档时间: |
|
| 查看次数: |
43232 次 |
| 最近记录: |