编码JSON cookie数据?

时间:2014-08-08 19:41:11

标签: javascript json cookies encoding

在保存Cookie时,您真的需要对JSON.stringify进行编码吗?

我测试了它,IE8 +和chrome工作正常,没有编码(encodeURIComponent)实际数据。编码问题是限制为4096字节,JSON中的许多项目将被编码,导致字节大小增加。

我会保存这样的变量,看起来真的不需要编码。 (只有345个字节)

{ 
  "s": 
  "p":"1",
  "c":"nameofsomething",
  "i":"56456,54115,878451,651451,65156,878941,5165165,54545,22115,874845",
  "t":"1407515818100",
  "gcid":"CPOa-ZTbpL4CFWdo7AodTnQA3A",
  "k":"54154154"
}

当我提取cookie时,一切都会被保留下来。我知道最佳做法是进行编码,但保存字节并保持cookie干净会更好。

由于编码,

编码看起来像(545字节)大约增加了200

 %7B%22s%22%3A%7B%22p%22%3A%221%22%2C%22c%22%3A%22nameofsomething%22%2C%22i%22%3A%2256456%2C54115%2C878451%2C651451%2C65156%2C878941%2C5165165%2C54545%2C22115%2C874845%22%2C%22t%22%3A%221407515818100%22%2C%22gcid%22%3A%22CPOa-ZTbpL4CFWdo7AodTnQA3A%22%2C%22k%22%3A%2254154154%22%7D%2C%22o%22%3A%7B%7D%7D

1 个答案:

答案 0 :(得分:2)

你在这里问两件不同的事情:

JSON编码

如果您尝试存储简单数据,则不需要JSON编码。您可以毫无困难地在Cookie中手动存储keyvalue对。饼干非常擅长。

另一方面,如果你有一个像你的例子那样的复杂对象,那么JSON编码是最好的方法。如果您不使用JSON编码,则需要一些其他方式来处理key/value编码,当您最终处理测试对象时,您刚刚创建了一个糟糕的版本JSON。因此,使用JSON并保存令人头疼的问题。

<强> encodeURIComponent方法

不需要。 Cookie不是URI,也不是URI组件。

其他

JSON编码将处理需要完成的任何unicode编码。

马上就好了,我很难想象需要做的任何编码都不会由JSON处理。