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

Posted

技术标签:

【中文标题】如何在 JavaScript localStorage 中存储(字典)对象?【英文标题】:How to store a (dictionary) object in JavaScript localStorage? 【发布时间】:2012-11-24 11:06:37 【问题描述】:

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

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

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

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

以上行不通。我该怎么做?

【问题讨论】:

Storing Objects in html5 localStorage的可能重复 【参考方案1】:

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]"

【讨论】:

以上是关于如何在 JavaScript localStorage 中存储(字典)对象?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 JSON 数据存储和检索到本地存储中?

打字稿,序列化类对象

localstorage 必知必会

localstorage 必知必会

基础 - 网页存储

localStorage用法