我必须在 cookie 中保存少量数据。
如果javascript(本机)提供一种序列化/反序列化数组(或对象)的方法,那就太好了。
老实说,我尝试编写自己的一段代码,它基于我们可以序列化数组以递归方式将其转换为键/值查询字符串的想法,反之亦然。
好吧,这是代码:
var lib = {
serialize : function(_a) {
var s = '', enc = encodeURIComponent;
for (var k in _a) {
if (s) s += '&';
s += enc(k) + '=' + ((typeof _a[k] == 'object') ? '?'+enc(lib.serialize(_a[k])) : enc(_a[k]));
}
return s;
},
deserialize : function(_s) {
var a = [], dec = decodeURIComponent;
var list = _s.split('&');
for (var c in list) {
var kv = list[c].split('=');
var v = kv[1].split('?');
kv[1] = (v.length > 1) ? lib.deserialize(dec(v[1])) : dec(kv[1]);
a[dec(kv[0])] = kv[1];
}
return a;
}
};
虽然它似乎工作得很好,但有人可以建议我一些更好更短的东西吗?一段代码或一个库,一些小而容易实现的 Javascript 数组序列化/反序列化?