如何存储和更新具有不同数据类型属性的localStorage密钥对象?

时间:2017-08-18 07:41:25

标签: javascript local-storage

这是我第一次使用localStorage,我希望存储一个localStorage键,该键是一个具有不同数据类型属性的对象,例如键“localstor” ,它是一个包含两个属性的对象:

localstor= { userMsg : String , userInfo : (Object) { ID: String , username: String , pwd :String } }

属性userMsg的类型为String,而属性userInfo的类型为object

我知道如何设置和获取仅包含基于对象的项目 this question,但在我的情况下,我不知道如何设置并获得这种密钥?并且特别是如果我想在localstor中更新对象userInfo如何做到这一点?

感谢任何帮助。

1 个答案:

答案 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));

如果您有任何疑问,请告诉我,以便我能以更好的方式回答!