您好,每个人都在艰难地更新我存储在sessionstorage中的值。我尝试了几种方法来定位嵌套对象的值,但运气不好。任何帮助将不胜感激。
我正在使用JavaScript创建的对象
var projectInfo = {
project1: {
name: 'Unique name',
extraCredit: true
}
project2: {
name: 'Unique name',
extraCredit: true
}
}
我如何坚持参加会议
sessionStorage.setItem('projectInfo', JSON.stringify(projectInfo));
如何在项目信息中定位嵌套的项目名称。例如
sessionStorage.setItem(projectInfo.project1.name, 'Student Fund raiser')
答案 0 :(得分:5)
您不能那样做。您必须检索整个对象,对其进行解析,更改所需内容,然后将其放回存储中:
var projectInfo = JSON.parse(sessionStorage.getItem('projectInfo'));
projectInfo.project1.name = 'Student Fund raiser';
sessionStorage.setItem('projectInfo', JSON.stringify(projectInfo));
注意:如果尚未存储对象,您最好检查sessionStorage.getItem
是否返回某些内容。
答案 1 :(得分:1)
在嵌套项目为字符串时,您不能更改其值(嗯,从理论上讲,您可以通过某种方式自行解析该字符串,但这听起来很麻烦)。我认为最好的方法是检索字符串,将其解析回JS对象,设置值,重新字符串化,然后存储。
var projectString = sessionStorage.getItem('projectInfo')
var projectObject = JSON.parse(projectString)
projectObject.project1.name = 'Student Fund raiser'
sessionStorage.setItem(JSON.stringify(projectObject))