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

Aka*_*nde 8 javascript json object local-storage

我有一个非常简单的字典.

var meta = {'foo':'1','moo':'2'}
Run Code Online (Sandbox Code Playgroud)

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

 window.localStorage.setItem("meta", meta);
 var meta1 = window.localStorage.getItem("meta");
 alert(meta1['foo']);
Run Code Online (Sandbox Code Playgroud)

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

Cer*_*rus 27

localStorage 将它的输入转换为字符串,因此您必须将对象转换为JSON字符串,然后返回:

window.localStorage.setItem("meta", JSON.stringify(meta));
var meta1 = JSON.parse(window.localStorage.getItem("meta"));
alert(meta1['foo']);
Run Code Online (Sandbox Code Playgroud)

你的代码不起作用的原因是因为设置一个对象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]"
Run Code Online (Sandbox Code Playgroud)