如何在JavaScript localStorage中存储(字典)对象?

时间:2012-12-06 12:06:15

标签: javascript json object local-storage

我有一个非常简单的字典。

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

我想将其存储在本地存储中并检索它。

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

以上不起作用。我该怎么办?

2 个答案:

答案 0 :(得分:24)

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]"

答案 1 :(得分:0)

您可能更喜欢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

BTW,我写了rhaboo。