2012-02-03 175 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