正在从Cookie中检索JSON

Retrieving JSON from cookies

本文关键字:检索 JSON Cookie      更新时间:2023-09-26

我的cookie设置如下

cookies[:cart] = "[{"id":"23","amount":"9"},{"id":"37","amount":"4"}]"

cookies[:cart]返回[{"id":"23"

在cookie上调用.each会产生这种可憎的东西:

["cart", "[{'"id'":'"23'""] ["'"amount'":'"9'"}", nil] ["{'"id'":'"37'"", nil] ["'"amount'":'"4'"}]", nil] 

我完全迷失了方向,无法真正弄清楚发生了什么(我怀疑','在做一些有趣的事情)。

所以我的问题是:

  • 有办法绕过这个吗
  • 我把JSON存储在cookie中是不是做错了什么
  • 如果point_2,那么,有什么更好的方法呢?(我主要使用Javascript进行存储,使用RoR进行阅读,我认为使用内置JSON函数进行解析会更容易。)

您的hash在ruby中如下所示:[{id:23,amount:9},{id:37,amount:4}]

要将其转换为json,请使用[{id:23,amount:9},{id:37,amount:4}].to_json,它将为您提供:

"[{'"id'":23,'"amount'":9},{'"id'":37,'"amount'":4}]"

仍然不确定我所做的是否是处理此类情况的正确方法,但我应该解决的问题如下:

我在存储cookie之前调用Javascript中的.replace(/,/g, '.');,在Javascript中检索后调用.replace(/'./g, ',');,在RoR中检索后再调用.gsub(/'./, ",")

对我来说,这似乎是一个可怕的变通方法,但就目前而言,这对我来说是一个可以的解决方案,因为我100%确信这个cookie中永远不会使用点。