将JSON存储到本地存储不起作用



按下按钮后,我想将一个项(嵌套的JSON(保存到一个新的数组中,并将其存储到本地存储中。

addFavourite(card) {
console.log(JSON.stringify(card));
var cards = [];
this.cardfavouriteArray.push.apply(cards, card)
this.storage.set('favouriteData', this.cardfavouriteArray);
}

getData() {
var data = this.storage.get('favouriteData');
if(data){
this.storage.get('favouriteData').then((val) => {
console.log('test', JSON.stringify(val));
});
}

我没有得到任何错误,但"test"总是空的。我需要它作为一个数组。

SetGet用于localstorage的方法因使用的服务而异

1.HTML5本地存储-如果您直接使用HTML5本地存储器,则应使用localStorage.getItemlocalStorage.setItem

2.本地存储被限制为仅存储字符串键/值对。使用设置和从本地存储获取时,请使用JSON.stringify和JSON.parse

addFavourite(card) {
console.log(JSON.stringify(card));
var cards = [];
this.cardfavouriteArray.push.apply(cards, card)
this.storage.setItem('favouriteData', JSON.stringify(this.cardfavouriteArray));
}

getData() {
var data = this.storage.get('favouriteData');
if(data){
this.storage.getItem('favouriteData').then((val) => {
console.log('test', JSON.parse(val));
});
}

3.ng2 webstorage-在ng2-webstorage的情况下,this.storage.retrievethis.storage.store将工作。

this.storage.set('favouriteData', this.cardfavouriteArray);更改为localStorage.set('favouriteData', JSON.stringify(this.cardfavouriteArray));(这是按角度预定义的方法(。也将数组字符串化。

在本地存储中设置数组,如下所示:

localStorage.setItem('favouriteData', JSON.stringify(this.cardfavouriteArray));

从本地存储中获取阵列,如下所示:

var data = JSON.parse(localStorage.getItem('favouriteData'));

说明:因为localstorage不能存储对象,所以它以字符串格式存储。所以我们需要JSON.stringify对象。此外,localStorage的函数名为setItem和getItem,定义如下:http://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage.当我们从本地存储获取字符串时,我们需要JSON.parse将其转换回对象。

您正在使用this.storage.set和this.storge.get。目前尚不清楚您使用的是哪个库,但我提到的代码可以在Angular或任何框架中使用。由于localStorage.setItem和localStorage.getItem是纯javascript。

最新更新