我想在html5中存储一个javascript对象localstorage,但是我的对象显然正在转换为字符串。
我可以使用来存储和检索原始javascript类型和数组localstorage,但是对象似乎无法正常工作。应该吗
这是我的代码:
var testobject = { 'one': 1, 'two': 2, 'three': 3 };
console.log('typeof testobject: ' + typeof testobject);
console.log('testobject properties:');
for (var prop in testobject) {
console.log(' ' + prop + ': ' + testobject[prop]);
}
// put the object into storage
localstorage.setitem('testobject', testobject);
// retrieve the object from storage
var retrievedobject = localstorage.getitem('testobject');
console.log('typeof retrievedobject: ' + typeof retrievedobject);
console.log('value of retrievedobject: ' + retrievedobject);
控制台输出为
typeof testobject: object
testobject properties:
one: 1
two: 2
three: 3
typeof retrievedobject: string
value of retrievedobject: [object object]
在我看来,该setitem方法是在存储输入之前将输入转换为字符串。
解决方案:
再次查看apple,mozilla和mozilla文档,该功能似乎仅限于处理字符串键/值对。
一种解决方法是在存储对象之前先对它进行字符串化处理,然后在检索它时对其进行解析:
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));
到此这篇关于在html5 localstorage中存储对象的文章就介绍到这了,更多相关html5 localstorage存储对象内容请搜索代码网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持代码网!
发表评论