2012-02-03 173 views
0

我希望能夠在餅乾中存儲樹狀結構。理想情況下,我想擁有一些可以輕鬆實現/反序列化JavaScript純對象的內容。將樹狀結構包裝成餅乾

JSON可能是一個不錯的選擇,但是一個快速的搜索結果並沒有濾除如何從JavaScript序列化爲JSON的主流方法。

解決此問題的最佳方法是什麼?

UPD

相關問題冒泡Javascript/PHP cookie serialization methods?,其中建議使用原型的Object.toJSON。我寧願留在jQuery中。

UPD2

原來window.JSON.stringify實際上可能在我的情況就足夠了,但是提到道格拉斯Crockford的庫似乎是一個很好的後備支持的瀏覽器在全球對象的JSON屬性不存在。

+0

請問你的樹數據是什麼樣子? – Gumbo 2012-02-03 11:43:07

回答

3

JSON是你的朋友。

由Douglas Crockford的兩罰一中和公認的實現可用here

我已經使用這個方法沒有任何問題讀取和存儲到HTML5的本地存儲。

+0

不錯!這似乎是一種方式。謝謝! – newtover 2012-02-03 11:45:18

1

JSON無疑是一個不錯的選擇。要使其跨瀏覽器在您的頁面https://github.com/douglascrockford/JSON-js/blob/master/json2.js中包含此文件。然後使用JSON.stringify()將其轉換爲字符串並存儲,然後使用JSON.parse()從cookie中檢索該對象。

請注意,可能存在quite low character limits on a single cookie's length,任何json化樹都可能遇到,因此您可能希望在轉換爲JSON之前預先處理數據(例如,用1和0替換布爾值,爲縮寫版本切換屬性名稱)進程從您的cookie中檢索後反轉這些更改。

如果您要存儲的數據量非常大,則可能會更好地存儲用於通過ajax請求從服務器檢索數據的會話/標識cookie(或者需要快速響應頁面加載,將數據輸出到腳本標記中),並通過ajax請求直接將數據保存到服務器,而不是使用cookie。

+0

你是對的,謝謝! – newtover 2012-02-03 11:57:16