2014-01-23 139 views
2

我試圖從localstorage中檢索一個對象並嘗試將其加載到變量中。我怎樣才能做到這一點 ?這是我卡在哪裏將本地存儲中的對象存儲到變量中

var messageStorage={}; 
    messageStorage.retrieve = function() { 
     var storageString = localStorage.getItem(credentials.mobileNumber); 
     var storageObj = JSON.parse(storageString); 

     // whats should go here for messageStorage to be equal to storageObj 
    }; 

on messageStorage.retrieve();變量messageStorage必須包含localstorage中的值。

+0

設置變量等於變量?你想做的事似乎很奇怪。 – epascarello

+0

在我看來,你很可能只需要返回函數中的storageObj值。嘗試添加return storageObj; – JanR

+0

@JanR將使messageStorage = storageObj>? – vijar

回答

0

與localStorage的數據實際上存儲爲一個字符串。 你使用JSON.parse返回值

JSON.parse() Returns the Object corresponding to the given JSON text. 
Example : 
JSON.parse('{}'); // {} 
    JSON.parse('true'); // true 
    JSON.parse('"foo"'); // "foo" 
    JSON.parse('[1, 5, "false"]'); // [1, 5, "false"] 
    JSON.parse('null'); // null 

但我看到的是你想返回變量。那麼這個變量的類型是什麼?數字,字符串,布爾?您可以從字符串轉換成你所需要的

0

的localStorage允許你只保存字符串,所以如果你有保存的對象,你應該將其保存爲一個JSON字符串或者您可以使用此library解決您的問題

0

首先我們不能存儲對象的localStorage的,只有字符串被允許:

localStorage.setItem("test", JSON.stringify(jsondata)); 

var item = JSON.parse(localStorage.getItem("test")); 

現在你必須JSON數據來分析,並得到價值。