0

少量のデータを 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;
    }
};

http://jsfiddle.net/P7wT8/

それは非常にうまく機能しているように見えますが、誰かが私にもっと良くて短いものを提案できますか? Javascript配列のシリアライズ/デシリアライズを実装するのが少し簡単なコードまたはライブラリ?

4

1 に答える 1