将JS对象数组存储在cookie中,没有插件?

时间:2011-05-10 14:34:27

标签: javascript cookies

存储此内容的最佳方式是什么:

var mydata = [{'11 Alveston Road, Manchester':1},
              {'12 Plymouth Street, Liverpool':2}];

在一个cookie中以便稍后检索?

我显然可以简单地将其全部转换为文本字符串,并添加一些符号作为分隔符(希望这些符号不会出现在数据值的任何位置),但它看起来有点hacky!

如果可能的话,我还想避免使用jQuery cookie插件等 - 我正在使用移动设备,而且每次额外的文件调用都会受到性能影响。

谢谢!

1 个答案:

答案 0 :(得分:5)

这听起来像是JSON.stringify的工作:

var myData = JSON.stringify(
    [
        {'11 Alveston Road, Manchester':1},
        {'12 Plymouth Street, Liverpool':2}
    ]
); // "[{"11 Alveston Road, Manchester":1},{"12 Plymouth Street, Liverpool":2}]"

数组将转换为JSON格式的字符串,然后您可以将其用作Cookie的值。您可以使用JSON.parse对其进行解码。


注意:由于您使用的是移动浏览器,因此它们可能非常现代,因此本机安装了JSON。在这些情况下,您可以使用this library解决此问题。