2014-08-31 49 views
0

我的cookie設置如下檢索JSON從餅乾

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

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

,並呼籲餅乾.each產生這種憎惡

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

我完全丟失,真的不知道發生了什麼(我懷疑','正在做一些有趣的事情)。

所以我的問題是:

  • 有沒有辦法解決?
  • 我是不是在餅乾存儲JSON可怕的錯誤?
  • 如果point_2那麼,什麼會是一個更好的辦法? (我主要是存儲與Javascript和在RoR讀,我想用JSON功能構建解析會更容易些。)
+0

是不是正是它生產或你手工輸入它?你想做什麼? – 2014-08-31 11:50:07

回答

0

你的哈希看起來像這樣的紅寶石:[{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}]"

+0

哈希上述與JavaScript生成並作爲cookie存儲 – Rebirth 2014-08-31 09:21:26

0

不過如果我在做什麼是處理這種情況的正確方法,但我認爲解決辦法是如下不知道:

在存儲cookie之前,我在Javascript中使用了.replace(/,/g, '.');,在使用Javascript獲取它之後,我會調用.replace(/\./g, ',');,在RoR中檢索它之後,我會調用.gsub(/\./, ",")

好像對我來說是可怕的解決辦法,但暫時對我來說是一個好解決方案,我100%肯定,絕不會有此cookie使用點。

+0

在JavaScript中存在的JSON對象,它可以讓你'JSON.parse'或'JSON.stringify'來處理這方面的工作。 – Ahmed 2014-08-31 12:24:19

+0

@Ahmed,這正是我所使用的,也是我將cookies存儲在JSON中的唯一原因。 ruby和javascript都有內置的方法來解析JSON。 – Rebirth 2014-08-31 16:23:19