保存为cookie时,JSON编码的数组转换为字符串
JSON encoded array converted to string when saved as cookie
我有一个简单的数组,我正在尝试对其进行JSON编码并设置为cookie。我正在使用json2.js脚本对JSON进行编码。我正在使用以下代码来设置cookie:
jQuery(document).ready(function(){
var ids = ['1', '2'];
JSON.stringify(ids);
setCookie(cookieName, ids, 1);
});
function setCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
在将数组转换为JSON并将其记录在控制台中之后,我得到:
["1", "2"]
这正是我所期望的。然后,我读出了带有以下功能的cookie
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
当我读出cookie并将其记录在控制台中时,我得到:
1,2
这表明它是一个字符串,不再是JSON编码的对象。我希望能够将cookie设置为JSON编码的对象,读取并解析JSON对象,最后对数据执行操作。因此,我的问题是,如何将JSON编码的对象发送到cookie,以便在读取时将其解析为JSON?
一如既往地感谢!
更改此项:
JSON.stringify(ids);
setCookie(cookieName, ids, 1);
对此:
var str = JSON.stringify(ids);
setCookie(cookieName, str, 1);
我没有看到您实际使用JSON字符串化的结果:
jQuery(document).ready(function(){
var ids = ['1', '2'];
setCookie(cookieName, JSON.stringify(ids), 1);
});
试试这个
setCookie
无法正确编码名称和值,getCookie
无法处理带有通用后缀的cookie(请参阅我对Javascript getCookie函数的回答)。
对于setCookie
,我会使用以下内容:
function setCookie(name, value, days) {
var expires = "";
if (days > 0) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = "; expires="+date.toGMTString();
}
document.cookie = encodeURIComponent(name)+"="+encodeURIComponent(value)+expires+"; path=/";
}
相关文章:
- 高亮显示与数组字符串一起使用时文本插件中断
- 从数组/字符串中删除所有小数和单个数字
- 使用Javascript regex替换“index”数组字符串
- 如何将复选框中的选中值收集为 javascript 数组/字符串
- 将数组数组字符串转换为 Javascript 数组数组的优雅方法
- 如何将数组字符串转换为数组
- 通过数组字符串访问JavaScript对象中的值
- Javascript数组字符串作为图像键
- Chrome和Firefox正在检索字符,而不是javascript中的数组字符串
- 如何在 JavaScript 函数中从 PHP end 传递数组字符串作为参数
- Jquery 如何检查数组字符串值是否在文本区域中
- 如何转换数组字符串
- JS数组字符串将名称修补到数组(对象)
- 在Javascript中从数组字符串中查找单个或多个值
- 如何将java数组字符串分配给javascript数组字符串
- 如何在javascript中将子数组字符串的数组转换为子数组的数组?
- 如何将字符串中的特殊值放入数组字符串
- 如何在JavaScript中给出RouteUrl中的数组字符串
- 在javascript的for循环中设置数组's字符串元素的长度为一个变量
- 如何从“数组字符串”中获取键值在javascript