13

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

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

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

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

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

4

1 回答 1

35

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]"
于 2012-12-06T12:08:52.520 回答