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 に答える