jquery将json数据对象保存在cookie中

发布于 2024-10-03 00:27:05 字数 650 浏览 4 评论 0原文

如何将 JSON 数据保存在 cookie 中?

我的 JSON 数据看起来像这样

$("#ArticlesHolder").data('15', {name:'testname', nr:'4',price:'400'});
$("#ArticlesHolder").data('25', {name:'name2', nr:'1', price:'100'});
$("#ArticlesHolder").data('37', {name:'name3', nr:'14', price:'60'});

我想做类似的事情

var dataStore = $.cookie("basket-data", $("#ArticlesHolder").data());

并检索我想要将其加载到 $("#ArticlesHolder") 中的数据,就像

$.each($.cookie("basket-data"), function(i,e){
 $("#ArticlesHolder").data(i, e);
});

有人知道我是否走在正确的轨道上 一样或者应该以其他方式完成?简而言之,如何从 cookie 中放入和提取 json 数据?

How do I save JSON data in a cookie?

My JSON data looks like this

$("#ArticlesHolder").data('15', {name:'testname', nr:'4',price:'400'});
$("#ArticlesHolder").data('25', {name:'name2', nr:'1', price:'100'});
$("#ArticlesHolder").data('37', {name:'name3', nr:'14', price:'60'});

And I want to do something like

var dataStore = $.cookie("basket-data", $("#ArticlesHolder").data());

and to retrieve the data i want to load it into $("#ArticlesHolder") like

$.each($.cookie("basket-data"), function(i,e){
 $("#ArticlesHolder").data(i, e);
});

does anyone know if I'm on the right track or should this be done in some other way? Simply put, how do i put and pull json data from a cookie?

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

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

发布评论

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

评论(6

洒一地阳光 2024-10-10 00:27:05

您可以将数据序列化为 JSON,如下所示:

$.cookie("basket-data", JSON.stringify($("#ArticlesHolder").data()));

然后从 cookie 中获取它:

$("#ArticlesHolder").data(JSON.parse($.cookie("basket-data")));

这依赖于 < code>JSON.stringify() 和 JSON.parse() 来序列化/反序列化您的数据对象,对于较旧的浏览器 (IE<8) 包括 json2.js 来获取 JSON 功能。此示例使用 jQuery cookie 插件

You can serialize the data as JSON, like this:

$.cookie("basket-data", JSON.stringify($("#ArticlesHolder").data()));

Then to get it from the cookie:

$("#ArticlesHolder").data(JSON.parse($.cookie("basket-data")));

This relies on JSON.stringify() and JSON.parse() to serialize/deserialize your data object, for older browsers (IE<8) include json2.js to get the JSON functionality. This example uses the jQuery cookie plugin

故事↓在人 2024-10-10 00:27:05

现在已经不需要显式使用 JSON.stringify 了。只要执行这行代码

$.cookie.json = true;

就可以在cookie中保存任何对象,在读取cookie时会自动将其转换为JSON并从JSON返回。

var user = { name: "name", age: 25 }
$.cookie('user', user);
...

var currentUser = $.cookie('user');
alert('User name is ' + currentUser.name);

但是JSON库没有附带jquery.cookie,所以你必须自己下载它并在 jquery.cookie.js 之前包含到html页面中

Now there is already no need to use JSON.stringify explicitly. Just execute this line of code

$.cookie.json = true;

After that you can save any object in cookie, which will be automatically converted to JSON and back from JSON when reading cookie.

var user = { name: "name", age: 25 }
$.cookie('user', user);
...

var currentUser = $.cookie('user');
alert('User name is ' + currentUser.name);

But JSON library does not come with jquery.cookie, so you have to download it by yourself and include into html page before jquery.cookie.js

征﹌骨岁月お 2024-10-10 00:27:05

使用 JSON.stringify(userData) 将 json 对象转换为字符串。

var dataStore = $.cookie("basket-data", JSON.stringify($("#ArticlesHolder").data()));

要从 cookie 中返回,请使用 JSON.parse()

var data=JSON.parse($.cookie("basket-data"))

use JSON.stringify(userData) to coverty json object to string.

var dataStore = $.cookie("basket-data", JSON.stringify($("#ArticlesHolder").data()));

and for getting back from cookie use JSON.parse()

var data=JSON.parse($.cookie("basket-data"))
惟欲睡 2024-10-10 00:27:05

将 JSON.stringify(userData) 返回的值保存到 cookie 并不是一个好习惯;它可能会导致某些浏览器出现错误。

在使用它之前,您应该将其转换为base64(使用btoa),并且在读取它时,从base64转换(使用atob )。

val = JSON.stringify(userData)
val = btoa(val)

write_cookie(val)

It is not good practice to save the value that is returned from JSON.stringify(userData) to a cookie; it can lead to a bug in some browsers.

Before using it, you should convert it to base64 (using btoa), and when reading it, convert from base64 (using atob).

val = JSON.stringify(userData)
val = btoa(val)

write_cookie(val)
压抑⊿情绪 2024-10-10 00:27:05

将数据序列化为 JSON 和 Base64,依赖 jquery.cookie.js :

var putCookieObj = function(key, value) {
    $.cookie(key, btoa(JSON.stringify(value)));
}

var getCookieObj = function (key) {
    var cookie = $.cookie(key);
    if (typeof cookie === "undefined") return null;
    return JSON.parse(atob(cookie));
}

:)

With serialize the data as JSON and Base64, dependency jquery.cookie.js :

var putCookieObj = function(key, value) {
    $.cookie(key, btoa(JSON.stringify(value)));
}

var getCookieObj = function (key) {
    var cookie = $.cookie(key);
    if (typeof cookie === "undefined") return null;
    return JSON.parse(atob(cookie));
}

:)

苏别ゝ 2024-10-10 00:27:05

试试这个:
https://github.com/tantau-horia/jquery-SuperCookie

快速使用:

创建 - 创建cookie

检查 - 检查是否存在

验证 - 验证 cookie 值(如果是 JSON)

check_index - 验证 JSON 中是否存在索引

read_values - 将 cookie 值读取为字符串

read_JSON - 将 cookie 值读取为 JSON 对象

read_value - 读取存储在 JSON 对象中的索引值

replace_value - 替换 JSON 对象中存储的指定索引的值

remove_value - 删除存储在 JSON 对象中的值和索引

只需使用:

$.super_cookie().create("name_of_the_cookie",name_field_1:"value1",name_field_2:"value2"});
$.super_cookie().read_json("name_of_the_cookie");

Try this one:
https://github.com/tantau-horia/jquery-SuperCookie

Quick Usage:

create - create cookie

check - check existance

verify - verify cookie value if JSON

check_index - verify if index exists in JSON

read_values - read cookie value as string

read_JSON - read cookie value as JSON object

read_value - read value of index stored in JSON object

replace_value - replace value from a specified index stored in JSON object

remove_value - remove value and index stored in JSON object

Just use:

$.super_cookie().create("name_of_the_cookie",name_field_1:"value1",name_field_2:"value2"});
$.super_cookie().read_json("name_of_the_cookie");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文