本文小编为大家详细介绍“html5中如何使用localStorage中存储对象”,内容详细,步骤清晰,细节处理妥当,希望这篇“html5中如何使用localStorage中存储对象”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

我想在HTML5中存储一个JavaScript对象localStorage,但是我的对象显然正在转换为字符串。

我可以使用来存储和检索原始JavaScript类型和数组localStorage,但是对象似乎无法正常工作。应该吗

这是我的代码:

vartestObject={'one':1,'two':2,'three':3};console.log('typeoftestObject:'+typeoftestObject);console.log('testObjectproperties:');for(varpropintestObject){console.log(''+prop+':'+testObject[prop]);}//PuttheobjectintostoragelocalStorage.setItem('testObject',testObject);//RetrievetheobjectfromstoragevarretrievedObject=localStorage.getItem('testObject');console.log('typeofretrievedObject:'+typeofretrievedObject);console.log('ValueofretrievedObject:'+retrievedObject);

控制台输出为

typeof testObject: object
testObject properties:
one: 1
two: 2
three: 3
typeof retrievedObject: string
Value of retrievedObject: [object Object]

在我看来,该setItem方法是在存储输入之前将输入转换为字符串。

解决方案:

再次查看Apple,Mozilla和Mozilla文档,该功能似乎仅限于处理字符串键/值对。

一种解决方法是在存储对象之前先对它进行字符串化处理,然后在检索它时对其进行解析:

vartestObject={'one':1,'two':2,'three':3};//PuttheobjectintostoragelocalStorage.setItem('testObject',JSON.stringify(testObject));//RetrievetheobjectfromstoragevarretrievedObject=localStorage.getItem('testObject');console.log('retrievedObject:',JSON.parse(retrievedObject));

读到这里,这篇“html5中如何使用localStorage中存储对象”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。