在会话存储中设置嵌套对象值
Setting nested object value in session storage
大家好,更新我存储在 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')
你不能那样做。您必须检索整个对象,解析它,更改您想要的内容,然后将其放回存储中:
var projectInfo = JSON.parse(sessionStorage.getItem('projectInfo'));
projectInfo.project1.name = 'Student Fund raiser';
sessionStorage.setItem('projectInfo', JSON.stringify(projectInfo));
注意:你不妨检查一下sessionStorage.getItem
returns something以防对象还没有存储。
当嵌套项被字符串化时,您不能更改它的值(好吧,我想理论上您可以通过某种方式自己解析字符串,但这听起来像是一件苦差事)。我认为最好的方法是检索字符串,将其解析回 JS 对象,设置值,重新将其字符串化,然后存储它。
var projectString = sessionStorage.getItem('projectInfo')
var projectObject = JSON.parse(projectString)
projectObject.project1.name = 'Student Fund raiser'
sessionStorage.setItem(JSON.stringify(projectObject))
如果报错,说明不能添加到null
易卜拉欣·马里尔的回答是:
var projectInfo = JSON.parse(sessionStorage.getItem('projectInfo'));
projectInfo.project1.name = 'Student Fund raiser';
sessionStorage.setItem('projectInfo', JSON.stringify(projectInfo));
试试这个:
var projectInfo = JSON.parse(sessionStorage.getItem('projectInfo'));
projectInfo = projectInfo === null ? {} : projectInfo;
projectInfo.project1.name = 'Student Fund raiser';
sessionStorage.setItem('projectInfo', JSON.stringify(projectInfo));
大家好,更新我存储在 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')
你不能那样做。您必须检索整个对象,解析它,更改您想要的内容,然后将其放回存储中:
var projectInfo = JSON.parse(sessionStorage.getItem('projectInfo'));
projectInfo.project1.name = 'Student Fund raiser';
sessionStorage.setItem('projectInfo', JSON.stringify(projectInfo));
注意:你不妨检查一下sessionStorage.getItem
returns something以防对象还没有存储。
当嵌套项被字符串化时,您不能更改它的值(好吧,我想理论上您可以通过某种方式自己解析字符串,但这听起来像是一件苦差事)。我认为最好的方法是检索字符串,将其解析回 JS 对象,设置值,重新将其字符串化,然后存储它。
var projectString = sessionStorage.getItem('projectInfo')
var projectObject = JSON.parse(projectString)
projectObject.project1.name = 'Student Fund raiser'
sessionStorage.setItem(JSON.stringify(projectObject))
如果报错,说明不能添加到null
易卜拉欣·马里尔的回答是:
var projectInfo = JSON.parse(sessionStorage.getItem('projectInfo'));
projectInfo.project1.name = 'Student Fund raiser';
sessionStorage.setItem('projectInfo', JSON.stringify(projectInfo));
试试这个:
var projectInfo = JSON.parse(sessionStorage.getItem('projectInfo'));
projectInfo = projectInfo === null ? {} : projectInfo;
projectInfo.project1.name = 'Student Fund raiser';
sessionStorage.setItem('projectInfo', JSON.stringify(projectInfo));