如何在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