我想把一個javascript對象放在Cookies中,但不知何故它被轉換爲String對象。有什麼方法可以在JavaScript Cookie中設置對象嗎?JavaScript - 我們可以在cookies中設置javascript對象嗎?
回答
在保存到cookie之前,您可以將對象轉換爲JSON,並在從Cookie獲取Cookie後將其從JSON轉換爲對象。
使用JSON - JavaScript對象符號。這是一個不錯的tutorial on using JSON。
長期以來的事情:它是將任何對象轉換爲特殊格式的文本字符串的標準。所以你會在Cookie中存儲一個JSON字符串。
沒有任何 - 如果'x'是循環的或者有函數,那麼'JSON.parse(JSON.stringify(x))'不會重建爲'x'。 – Amadan 2012-04-12 07:21:00
您可以使用JSON.stringify()
將對象轉換爲JSON字符串並存儲它。然後當你閱讀它們時,將字符串轉換爲對象使用JSON.parse()
另外,最好使用LocalStorage而不是cookie來存儲更大的數據。這兩個存儲字符串,但餅乾只有4kb,而LocalStorage大約5-10MB。
一個很好的資源:http://myownplayground.atspace.com/cookietest.html – mplungjan 2012-04-12 07:22:19
這個函數會將對象轉換爲字符串,用它來對對象進行字符串化,然後添加到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;
}
- 1. 我們可以設置JavaScript以異步加載JavaScript嗎?
- 2. 我們可以在javascript中將對象分配到cookie中嗎?
- 3. 我可以用javascript連接對象嗎?
- 4. 我們可以設置一個類的對象的屬性嗎?
- 5. 可以設置一個javascript對象的原型嗎?
- 6. 我可以在JavaScript中運行JavaScript嗎?
- 7. 我們可以在javascript中設置tabindex文本框和其他控件嗎
- 8. 使用Cookies在javascript中設置警報
- 9. JavaScript Cookies沒有設置
- 10. 我可以在javascript中爲'window'對象添加屬性嗎?
- 11. 我可以在JavaScript中創建自己的數組對象嗎?
- 12. 我可以將JavaScript對象存儲在mySQL數據庫中嗎?
- 13. 我可以在Meteor的MongoDB中存儲JavaScript Map對象嗎?
- 14. 我可以在javascript的函數參數中使用對象嗎?
- 15. 我可以在JavaScript中創建動態對象名稱嗎?
- 16. 我可以在JavaScript對象中保存條件嗎?
- 17. 我可以在JavaScript中動態設置tabindex嗎?
- 18. 我們可以設置字符串嗎?
- 19. 我們可以在jQuery中讀取Laravel cookies嗎?反之亦然?
- 20. Javascript - 你可以重用Date()對象嗎?
- 21. JavaScript可以讀取HTTP Session對象嗎?
- 22. 我們可以在JavaScript中創建
- 23. 我們可以在javascript中使用閉包中的閉包嗎?
- 24. 我如何我可以從JavaScript對象
- 25. 在iTextSharp中,我們可以設置pdfwriter的垂直位置嗎?
- 26. 我們可以使用JavaScript
- 27. 是否可以在javascript中將對象的屬性值設置爲對象?
- 28. 我們可以在驗證時設置源對象的屬性嗎?
- 29. 我可以在ng-bind內創建JavaScript對象嗎?
- 30. Java對象可以成爲Nashorn中JavaScript對象的原型嗎?
不,您只能存儲字符串數據。但是普通對象可以輕鬆地來回轉換爲JSON。 – Bergi 2012-04-12 07:18:49
@Bergi:+1表示「普通對象」。 – Amadan 2012-04-12 07:21:44