我需要在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");
我该怎么做才能解决它?
答案 0 :(得分:7)
使用JSON.stringify()
设置JSON
和JSON.parse()
将JSON
转换为JavaScript对象;期待设置字符串{。}}。
答案 1 :(得分:4)
“存储对象是简单的键值存储,类似于对象,但它们通过页面加载保持不变。键和值始终是字符串(请注意,整数键将是自动转换为字符串,就像对象一样。“
您无法在localStorage中存储复杂的Object
值。遗憾。
相反,您应该将对象序列化为字符串[hint:JSON.stringify()
],然后在检索之后将其从JSON字符串解析回Object [提示:JSON.parse()
]。
答案 2 :(得分:3)
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));