【问题标题】:convert string to array and vice versa [closed]将字符串转换为数组,反之亦然[关闭]
【发布时间】:2013-12-24 19:27:01
【问题描述】:

此代码允许您在 cookie 中插入变量数组,然后对其进行修改。

需要导入 jquery.cookie.js http://plugins.jquery.com/cookie/

<script type="text/javascript" src="include/js/jcookie/jquery.cookie.js"></script>

这个函数检查cookie。

//Funzione controllo cookie
function checkcookie() {

    if (typeof $.cookie('cookie') == 'undefined') {
        newcookie();
    }
}

此函数将数组转换为字符串并创建 cookie。

//Funzione crea cookie
//crea un array e lo trasforma in stringa per il cookie
function newcookie() {
var cookievars = [$.now(),'','','','','','','',''];
    var a = "";
    for(key in cookievars)
    {
        b = cookievars[key]+",";
        a = a.concat(b);
    }
a = a.substring(0,a.length-1);
console.log(a);
$.cookie('cookie', a, { expires: 365 });
}

该函数将字符串变量获取到cookie中,并将其转换为数组;修改数组并转换字符串以覆盖 cookie

//Funzione modifica cookie
//apre il cookie e recupera la stringa che viene trasformata 
//in aarray, modificata e ritrasformata in stringa per il cookie
function modcookie(idlink) {
    var a = $.cookie('cookie');
    var a = a.split(",");
    for(key in a)
    {
        if (a[key] =='') {
            a[key] = idlink;
            break;
        }
    }

b = "";
for(key in a)
    {
        c = a[key]+",";
        b = b.concat(c);
    }
b = b.substring(0,b.length-1); //rimuove l'ultima virgola ","
console.log(b);
$.cookie('cookie', b, { expires: 365 });
}

有人知道如何做得更好吗?

【问题讨论】:

标签: javascript jquery arrays string cookies


【解决方案1】:

为什么不使用 JSON 序列化?您可以在写入 cookie 之前将数据序列化为 JSON,并在从 cookie 读取之后以及在使用/修改数据之前进行反序列化。

例子:

function writeJSONCookie(cookieName, data, options) {
    options = options || {};
    $.cookie(cookieName, JSON.stringify(data), options);
}

function readJSONCookie(cookieName) {
    return JSON.parse($.cookie(cookieName));
}

// usage sample
var cookieData = readJSONCookie('someCookie');
// change data
cookieData.property = 'new value';
// persist change
writeJSONCookie('someCookie', cookieData);

这可以灵活地将任何类型的对象或数组存储到任意 cookie 中。无需执行您当前正在执行的任何手动连接业务。

既然我已经向您展示了手动执行此操作的方法,我还要指出 cookie 插件支持数据与 JSON 的自动转换。只需设置以下选项:

$.cookie.json = true;

而上面的使用例子就变成了(不需要前面定义的函数):

// usage sample
$.cookie.json = true;
var cookieData = $.cookie('someCookie');
// change data
cookieData.property = 'new value';
// persist change
$.cookie('someCookie', cookieData);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    相关资源
    最近更新 更多