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

如何在JavaScript localStorage中存储(字典)对象?,javascript,json,object,local-storage,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']); 上述方法不起作用。我该怎么做?localStorage将其输入转换为字符串,因此您必须将对象转换为JSON字符串,然后返回: window

我有一本非常简单的字典

var meta = {'foo':'1','moo':'2'}
我想将其存储在本地存储器中并检索它

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

上述方法不起作用。我该怎么做?

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]”
):

您可能更喜欢搭配:

顺便说一句,我写了rhaboo。

可能是重复的
window.localStorage.setItem("objectInput", {some:"object"});
var objectOutput = window.localStorage.getItem("objectInput");
alert(objectOutput);
// This returns "[object Object]"
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