Мне нужно сохранить в файле cookie небольшое количество данных.Сериализация javascript - короткая библиотека
Было бы замечательно, если бы javascript (изначально) обеспечил способ сериализации/десериализации массива (или объекта).
Чтобы быть честным, я попытался написать свой собственный фрагмент кода, он основан на идее о том, что мы можем сериализовать массив, рекурсивно преобразовывая его в querystring ключа/значения и наоборот.
Ну, это код:
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-массива Сериализация/десериализация?
Вы платите за каждое нажатие клавиши? Все это сокращение невозможно прочитать. – Halcyon