2012-12-06 35 views
5

我有一本非常簡單的字典。如何在JavaScript localStorage中存儲(字典)對象?

var meta = {'foo':'1','moo':'2'} 

我想將其存儲在本地存儲並檢索它。

window.localStorage.setItem("meta", meta); 
var meta1 = window.localStorage.getItem("meta"); 
alert(meta1['foo']); 

上述不起作用。我該怎麼做?

+0

[在HTML5 localStorage中存儲對象](http://stackoverflow.com/questions/2010892/storing-objects-in-html5-localstorage) –

回答

18

localStorage轉換它的輸入字符串,那麼你將有你的對象轉換爲JSON字符串,然後回來:

window.localStorage.setItem("meta", JSON.stringify(meta)); 
var meta1 = JSON.parse(window.localStorage.getItem("meta")); 
alert(meta1['foo']); 

你的代碼沒有工作的原因是因爲設置在一個對象localStorage套它的價值"[object Object]"object.toString()回報"[object Object]"):

window.localStorage.setItem("objectInput", {some:"object"}); 
var objectOutput = window.localStorage.getItem("objectInput"); 
alert(objectOutput); 
// This returns "[object Object]" 
+0

非常感謝@Cerbrus !!! –

+0

沒問題!請考慮將此答案標記爲正確的答案;-) – Cerbrus

+0

是的,我試着立即做,但你不能標記答案爲正確的,直到8分鐘結束...現在做到了 –

0

你MIG ht更喜歡它與http://rhaboo.org

var store = Rhaboo.persistent('Some name'); 
store.write('count', store.count ? store.count+1 : 1); 

store.write('somethingfancy', { 
    one: ['man', 'went'], 
    2: 'mow', 
    went: [ 2, { mow: ['a', 'meadow' ] }, {} ] 
}); 

store.somethingfancy.went[1].mow.write(1, 'lawn'); 
console.log(store.somethingfancy.went[1].mow[1]); //says lawn 

順便說一句,我寫了rhaboo。

相關問題