我有一个非常简单的字典。
var meta = {'foo':'1','moo':'2'}
我想将其存储在本地存储中并检索它。
window.localStorage.setItem("meta", meta);
var meta1 = window.localStorage.getItem("meta");
alert(meta1['foo']);
以上不起作用。我该怎么办?
答案 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。