2011-12-13 93 views
2

我是新來的html5網絡存儲無法將數組或對象設置爲html5網絡存儲?

設置爲網絡存儲很容易。

sessionStorage.someKey = 'someValue'; 

但是當我設定數組或對象到鍵等

sessionStorage.name = ['abc','def']; 
typeof sessionStorage.name; 
//output "string" 
//a object is the same 

所以如何使用web存儲陣列或對象?或者有更好的方法來解決這個問題?

回答

4

我曾經使用過像這樣的數據結構,通過使用JSON。下面是一個簡單...

var data = { First: "abc", Second: "def" }; 
var jsData = JSON.stringify(data); 
window.sessionStorage.setItem("key1", jsData); 

然後你就可以得到像這樣的數據...

var jsData = window.sessionStorage.getItem("key1"); 
var data = JSON.parse(jsData); 
0

出於安全原因,我將所有內容都放入JSON編碼的Base64編碼字符串中。也許不需要Base64,但更安全。

實施例只是用JSON:

sessionStorage.name = JSON.stringify(['abc','def']); 
typeof JSON.parse(sessionStorage.name); 

這將是一個數組。

1

你可以這樣做:

function saveInSession(key, val) { 
    sessionStorage[key] = JSON.stringify(val); 
} 

function getFromSession(key) { 
    return JSON.parse(sessionStorage[key]); 
} 

您需要包括json2.js在你的頁面,以確保JSON.parse()JSON.stringify()跨瀏覽器支持。