将树状结构打包到 cookie 中

发布于 2025-01-02 12:25:55 字数 584 浏览 0 评论 0原文

我希望能够在 cookie 中存储树状结构。理想情况下,我希望有一些可以轻松序列化/反序列化 javascript 普通对象的东西。

JSON 可能是一个不错的选择,但是快速谷歌搜索并没有过滤出如何从 JavaScript 序列化为 JSON 的主流方法。

解决问题的最佳方法是什么?

UPD

相关问题冒泡Javascript/PHP cookie序列化方法?,建议使用 Prototype 的 Object.toJSON。我更愿意继续使用 jQuery。

UPD2

事实证明 window.JSON.stringify 在我的情况下实际上可能就足够了,但提到的 Douglas Crockford 的库似乎是支持 JSON< 的浏览器的一个很好的后备方案/code> 全局对象的属性不存在。

I would like to be able to store a tree-like structure in a cookie. Ideally, I would like to have something that easily serealizes/deserializes a javascript plain object.

JSON might be a good option, but a quick googling did not filtered out a mainstream approach how to serialize to JSON from JavaScript.

What is the best way to approach the problem?

UPD

Related questions bubbled up Javascript / PHP cookie serialization methods?, which suggests using Prototype's Object.toJSON. I would prefer to stay with jQuery.

UPD2

It turned out that window.JSON.stringify might actually suffice in my case, but mentioned Douglas Crockford's library seems like a good fallback to support browsers where JSON property of the global object is not present.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

月亮是我掰弯的 2025-01-09 12:25:55

JSON 是你的朋友。

Douglas Crockford 制作的免费且公认的实现可以在 此处

我使用此方法来读取和存储到 HTML5 的本地存储没有任何问题。

JSON is your friend.

A free and recognized implementation made by Douglas Crockford is available here

I have used this method to read and store to HTML5's local storage without any problems.

梦在夏天 2025-01-09 12:25:55

JSON无疑是一个不错的选择。要使其跨浏览器工作,请将此文件包含在您的页面中 https:// github.com/douglascrockford/JSON-js/blob/master/json2.js。然后使用 JSON.stringify() 转换为字符串并存储,并使用 JSON.parse() 从 cookie 中检索对象。

请注意,单个 cookie 的长度可能有相当低的字符限制,任何 json 化的树都可以命中,因此您可能需要在转换为 JSON 之前对数据进行预处理(例如,用 1 和 0 替换布尔值、切换缩写版本的属性名称),并在从您的数据中检索后进行后处理以反转这些更改。 曲奇饼。

如果您存储的数据量非常大,那么最好存储一个会话/标识符 cookie,用于通过 ajax 请求从服务器检索数据(或者如果您需要在页面加载时快速响应,则输出将数据保存到脚本标签中)并通过ajax请求将数据直接保存到服务器,而不是使用cookie。

JSON is undoubtedly a good option. To have it work cross-browser include this file in your page https://github.com/douglascrockford/JSON-js/blob/master/json2.js. Then use JSON.stringify() to convert to a string and store, and JSON.parse() to retrieve the object from the cookie.

Be aware that there can be quite low character limits on a single cookie's length, which any jsonified tree could hit, so you might want to preprocess your data before converting to JSON (e.g. replacing booleans with 1's and 0's, switching property names for abbreviated versions) and post-process to reverse these changes after retrieveing from your cookie.

If the amount of data you're storing is really large it may be better to store a session/identifier cookie which is used to retrieve the data from the server via an ajax request (or if you need a quick response on page load, output the data into a script tag) and save the data directly to the server via ajax requests instead of using a cookie.

執念 2025-01-09 12:25:55

另一种 JSON 序列化实现作为 jQuery 插件:http://code.google.com/p/ jquery-json/

One more JSON serialization implementation as a jQuery plugin: http://code.google.com/p/jquery-json/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文