2013-02-21 60 views
4

我想在本地保存树状结构的值,然后根据用户交互检索它们。经过一番研究后,我发现sessionStorage(或localStorage)可能是一个很好的方法去做这件事。但是我在保存嵌套数据时遇到了问题。有没有类似sessionStorage的东西,但有多维键?

通常你必须:

sessionStorage['key'] = 'someString'; 

我试图执行类似:

sessionStorage['key1'] = []; 
sessionStorage['key1']['key2'] = 'someString'; 

,但我得到了一个undefined错误。

我已经检出了其他几个存储库,但它们只提供那个单一的键值对选项。有什么我失踪?

回答

7

使用JSON以连载嵌套数据转换成字符串,那么当你需要访问它作为一个对象对其进行解码...

var nested = {some:{nested:'object'}} 
var asJson = JSON.stringify(nested) 
sessionStorage['data'] = asJson 
var asObject = JSON.parse(sessionStorage['data']) 
+0

我有3个对象我想保存每个关键,但我从来没有想过把它们合并成一个,然后序列化。谢谢! – Logan 2013-02-21 00:55:43

2

从developer.mozilla.com:

DOM存储机制是一种可以安全地存储并随后检索字符串键/值 对的方式。

因此,我认为你不能直接在会话存储中存储数组/字典。我强烈建议你检查这个链接: https://developer.mozilla.org/en-US/docs/DOM/Storage

+0

你不能做Key = String,但该值可以存储为Object-检查链接:http://www.diveintojavascript.com/tutorials/web-storage-tutorial-creating-an-address-book-application – user1428716 2013-02-21 00:27:17

相关问题