Javascript 为什么不是';localStorage是否接受我的对象?

Javascript 为什么不是';localStorage是否接受我的对象?,javascript,object,Javascript,Object,我需要在localstorage中存储一个类似下面示例中的对象。我需要能够检索并编辑此对象,然后将其保存回localStorage,以便下次使用 var data = {lastEdit:"September", expires:"December", records:[{arrives: "12:45", departs: "12:51"}, {arrives: "13:03", departs

我需要在
localstorage
中存储一个类似下面示例中的对象。我需要能够检索并编辑此对象,然后将其保存回
localStorage
,以便下次使用

var data = {lastEdit:"September", expires:"December", records:[{arrives: "12:45", departs: "12:51"}, {arrives: "13:03", departs: "13:04"}]};
我试过了,但它说“未定义”:

localStorage.setItem("dataStore1", data);
var output = localStorage.getItem("dataStore1");
我能做些什么来修复它

已解决使用
JSON.stringify()
设置
JSON
JSON.parse()
JSON
转换为JavaScript对象<代码>本地存储要求设置字符串。

来自:

存储对象是简单的键值存储,与对象类似,但它们在页面加载过程中保持不变。键和值始终是字符串(请注意,整数键将自动转换为字符串,就像对象所做的那样)

不能在localStorage中存储复杂的
对象
值。对不起


相反,您应该将对象序列化为字符串[hint:],然后在检索后将其从JSON字符串解析回对象[hint:]。

localstorage
仅限于字符串键/值对存储前使用
JSON.stringify()
,检索后使用
JSON.parse()

var testObject = { 'one': 1, 'two': 2, 'three': 3 };

// Put the object into storage
localStorage.setItem('testObject', JSON.stringify(testObject));

// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');

console.log('retrievedObject: ', JSON.parse(retrievedObject));

localStorage
只接受字符串作为数据,使用
JSON。在将数据传递给localstorageFYI之前,对数据进行stringify
localStorage
不是JavaScript的一部分。这是一个由浏览器实现的API标准,不是语言特性。全部完成,谢谢你的帮助。我就试试看。真管用——谢谢!我会接受你的答案,当它让我知道你的答案是正确的,它没有说什么,其他两个答案,在这里早在你的答案还没有说。谢谢你为我澄清-非常感谢!