我想在本地保存树状结构的值,然后根据用户交互检索它们。经过一些研究,我发现sessionStorage
(或localStorage
)可能是一个很好的方法。但是我在保存嵌套数据方面遇到了麻烦。
通常你有:
sessionStorage['key'] = 'someString';
我试图实现类似的东西:
sessionStorage['key1'] = [];
sessionStorage['key1']['key2'] = 'someString';
但我收到undefined
错误。
我已经检查了一些其他存储库,但它们只提供了单个键值对选项。有什么我想念的吗?
答案 0 :(得分:7)
使用JSON将嵌套数据序列化为字符串,然后在需要将其作为对象访问时对其进行解码...
var nested = {some:{nested:'object'}}
var asJson = JSON.stringify(nested)
sessionStorage['data'] = asJson
var asObject = JSON.parse(sessionStorage['data'])
答案 1 :(得分:2)
来自developer.mozilla.com:
DOM存储机制是字符串键/值的一种方式 对可以安全地存储,然后检索使用。
因此我认为你不能直接在会话存储中存储数组/字典。我强烈建议你查看这个链接: https://developer.mozilla.org/en-US/docs/DOM/Storage