簡體   English   中英

將JSON存儲到localstorage不起作用

[英]Store JSON to localstorage not working

按下按鈕后,我想將一個項目(嵌套的JSON)保存到一個新的Array中,並將其存儲到localstorage中。

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'總是空的。 我需要它作為一個數組。

localstorage SetGet方法因您使用的服務而異

1. HTML5 localStorage - 如果您直接使用HTML5 localStorage,那么您應該使用localStorage.getItemlocalStorage.setItem

2.localstorage僅限於存儲字符串鍵/值對。使用設置和從localstorage獲取時使用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); to 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 當我們從localstorage獲取字符串時,我們需要JSON.parse將其轉換回對象。

您正在使用this.storage.set和this.storage.get。 目前尚不清楚您使用的是哪個庫,但我提到的代碼可以在Angular或任何框架中使用。 由於localStorage.setItem和localStorage.getItem是純javascript。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM