2012-04-12 102 views
2

我想把一個javascript對象放在Cookies中,但不知何故它被轉換爲String對象。有什麼方法可以在JavaScript Cookie中設置對象嗎?JavaScript - 我們可以在cookies中設置javascript對象嗎?

+1

不,您只能存儲字符串數據。但是普通對象可以輕鬆地來回轉換爲JSON。 – Bergi 2012-04-12 07:18:49

+0

@Bergi:+1表示「普通對象」。 – Amadan 2012-04-12 07:21:44

回答

4

在保存到cookie之前,您可以將對象轉換爲JSON,並在從Cookie獲取Cookie後將其從JSON轉換爲對象。

0

使用JSON - JavaScript對象符號。這是一個不錯的tutorial on using JSON

長期以來的事情:它是將任何對象轉換爲特殊格式的文本字符串的標準。所以你會在Cookie中存儲一個JSON字符串。

+1

沒有任何 - 如果'x'是循環的或者有函數,那麼'JSON.parse(JSON.stringify(x))'不會重建爲'x'。 – Amadan 2012-04-12 07:21:00

5

您可以使用JSON.stringify()將對象轉換爲JSON字符串並存儲它。然後當你閱讀它們時,將字符串轉換爲對象使用JSON.parse()

另外,最好使用LocalStorage而不是cookie來存儲更大的數據。這兩個存儲字符串,但餅乾只有4kb,而LocalStorage大約5-10MB。

+2

一個很好的資源:http://myownplayground.atspace.com/cookietest.html – mplungjan 2012-04-12 07:22:19

1

這個函數會將對象轉換爲字符串,用它來對對象進行字符串化,然後添加到cookie中。

function JSONToString(Obj){ 

var outStr =''; 
for (var prop in Obj) { 
    outStr = '{'; 
    if (Obj.hasOwnProperty(prop)) { 
     if(typeof Obj[prop] == 'object'){ 
      outStr += JSONToString(Obj[prop]); 
     } else { 
      outStr += prop + ':' + Obj[prop].toString(); 
     } 
    } 
    outStr += '}'; 
} 
return outStr; 
} 
+0

我不能寫這樣JSON.stringify() - 這不會轉換爲字符串? – Sriram 2012-04-12 08:26:13

+0

[JSON JS](http://www.json.org/js.html)表示,這VAR myJSONText = JSON.stringify(myObject的,替換器); – Sriram 2012-04-12 08:29:26

+0

2012-04-12 08:52:29

相關問題