如何将此JSON对象存储为cookie,而不是在vanilla javascript中读取它?

时间:2010-07-15 04:11:26

标签: javascript json cookies node.js

我实际上可以把它写成像这样的cookie:

 ["4c3dd477c441e17957000002","4c2ac3cc68fe54616e00002e","4c3dd477c441e17957000003","4c3dd477c441e17957000004"]

但我如何阅读cookie?

我正在使用node.js / express.js(以及咖啡脚本),当我读取cookie键时,我得到的值只是上面数组的第一个值。

我需要以某种方式解析它吗?或者更复杂的序列化/反序列化?

由于

2 个答案:

答案 0 :(得分:4)

Cookie以逗号分隔,因此当您存储JSON时,它会被分解为多个Cookie。在写入Cookie之前,您需要以某种方式对JSON字符串进行编码,然后在读取时进行解码。

例如,您可以使用JSON字符串并替换“”,“这样的部分:

// encode
mycookie = json.replace(/","/g, '"-"');

// decode
json = mycookie.replace(/"-"/g, '","');

显然这不是一般解决方案,因为您需要确保被替换的字符串不会出现在内容中(甚至是转义)

答案 1 :(得分:1)

我认为你可以像这样编码:

// encode
mycookie = json.replace(/","/g, '"2%C"');

解码时无需修改