javascript - 保存为 cookie 时,JSON 编码数组转换为字符串

标签 javascript json cookies

我有一个简单的数组,我正在尝试对其进行 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);

关于javascript - 保存为 cookie 时,JSON 编码数组转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6090153/

相关文章:

javascript - 为什么appendChild添加的新节点离开函数后就消失了?

php - 如何在PHP文件中使用JSON进行跨域调用?

php - 使用cURL/php获取页面,但缺少一些东西

java - 将 cookie 从域传递到子域

javascript - 不同页面上的相同 cookie(cookie 路径)

javascript - 为什么脚本不执行?

JavaScript Firestore :how to get results of a where query

javascript - 使用javascript更改图标

javascript - AngularJS 用 <select> 中的对象填充 $scope.selected

javascript - 如何解决nodejs javascript中的 `...`错误