Javascript 如何使用jquery.cookie读取保存在cookie中的数组?
我正在使用jquery.cookie(),我在这方面遇到了很多问题,我正在尝试保存这种结构的数组Javascript 如何使用jquery.cookie读取保存在cookie中的数组?,javascript,jquery,json,cookies,Javascript,Jquery,Json,Cookies,我正在使用jquery.cookie(),我在这方面遇到了很多问题,我正在尝试保存这种结构的数组 var obj = { 'row1' : { 'key1' : 'input1', 'key2' : 'inpu2' }, 'row2' : { 'key3' : 'input3', 'key4' : 'input4' } }; 但是当我想读的时候,我得到了这个 row1%5Bkey1%5D=input
var obj = {
'row1' : {
'key1' : 'input1',
'key2' : 'inpu2'
},
'row2' : {
'key3' : 'input3',
'key4' : 'input4'
}
};
但是当我想读的时候,我得到了这个
row1%5Bkey1%5D=input1&row1%5Bkey2%5D=inpu2&row2%5Bkey3%5D=input3&row2%5Bkey4%5D=input4
我以这种方式发送:
$.cookie('listresult', $.param(obj), { expires: 10 });
最糟糕的是有时有效,有时无效,所以,我不知道出了什么问题。。。知道如何发送和转换数据吗
我用这个来读它
var cookieValue = $.cookie("listresult");
当我尝试这个。。。不起作用
$.parseJSON($.cookie("listresult");)
谢谢如果您仔细阅读jQuery插件手册,您会发现: json 启用作为cookie值传递的JSON对象的自动存储。 假设JSON.stringify和JSON.parse: $.cookie.json=true
这样,当您设置整个cookie时,JavaScript对象将序列化为JSON,当您检索该cookie时,它们将再次反序列化为JavaScript。您不应该使用
jquery.param
方法。它旨在与HTTP(AJAX)请求一起使用,因此这不是您的情况。在编写cookie时必须使用JSON.stringify
,在阅读时必须使用JSON.parse
:
// write (save):
$.cookie('listresult', JSON.stringify(obj), { expires: 10 });
// read (restore):
var obj = JSON.parse($.cookie('listresult'));
不要为此使用
$.param()
。转义URL中特殊字符的。您可能想要序列化为JSON。感谢您的回复,那么我应该如何发送它?下面的两个答案向您展示了两种方法。我尝试过,但我不知道在哪里放置它,何时保存或何时阅读?(我在保存之前尝试过)@jpganz18我想你应该创建一个名为init.js
的文件,它可能会在jQuery之后添加到你的HTML源代码中,所以当你在实际代码中使用它时,每个插件都已经用设置初始化了。如果你阅读了我之前的答案,此插件支持您开箱即用的建议。。。。。。