这是我第一次使用localStorage
,我希望存储一个localStorage
键,该键是一个具有不同数据类型属性的对象,例如键“localstor
” ,它是一个包含两个属性的对象:
localstor= { userMsg : String , userInfo : (Object) { ID: String , username: String , pwd :String } }
属性userMsg
的类型为String
,而属性userInfo
的类型为object
。
我知道如何设置和获取仅包含基于对象的项目 this question,但在我的情况下,我不知道如何设置并获得这种密钥?并且特别是如果我想在localstor中更新对象userInfo如何做到这一点?
感谢任何帮助。
答案 0 :(得分:3)
我不知道我是否理解了你的问题,如果我这样做了,请告诉我这样我可以纠正我的答案,但我认为你要做的是操纵你保存在缓存中的项{{1例如,这个数据是一个包含多种类型数据的对象。
所以,假设您有对象localStorage
(我添加了一些标签,以便更容易查看和调试);
localstor
将它放入localStorage是非常容易的(正如你所指出的那样,你已经知道如何做)所以你只需要选择一个键。在这里,我选择了“obj”作为关键:
var localstor = {
userMsg : "Message",
userInfo :{
ID: "SomeID",
username: "SomeUsername",
pwd : "SomePassword"
}
}
您可能已经注意到,我使用了函数localStorage.setItem("obj", JSON.stringify(localstor));
。
我这样做是因为你有一个包含对象的对象,你需要将它转换为 String 来存储它。 JavaScript已经内置了此功能,因此您无需安装任何内容。
如何立即检索和更新localstor对象?
很简单。
我使用 localStorage.getItem()函数检索对象,传递我之前设置的“obj”,这个结果我需要将它转换回Object类型(因为我们将它存储为字符串之前,请记住?)使用JSON.stringify()
函数。之后,我可以像编辑任何其他对象一样编辑对象的属性:
JSON.parse()
我可以将新对象设置回LocalStorage:
localstor = JSON.parse(localStorage.getItem("obj"));
localstor.userInfo.username = "AnotherUsername";
就是这样!现在,当我再次检索它时,用户名的新值将在那里。
完整代码:
localStorage.setItem("obj", JSON.stringify(localstor));
如果您有任何疑问,请告诉我,以便我能以更好的方式回答!