其他人有這個問題?哈希to_json和後面不保留散列作爲關鍵?
hash_as_key = {'one' => 1, 'two' => 2}
outer_hash = {hash_as_key => 3}
outer_hash.keys[0].class
=> Hash
as_json = outer_hash.to_json
back_to_obj = JSON.parse(as_json)
back_to_obj.keys[0]
=> "{\"one\"=>1, \"two\"=>2}"
back_to_obj.keys[0].class
=> String
如果你有一個Hash對象,其中的關鍵是散列本身,轉換成JSON並恢復到Ruby對象似乎轉動鑰匙爲一個字符串。
解決方法:JSON只支持字符串作爲鍵,但我們發現在Ruby中的YAML解析器似乎來回轉換沒關係,'YAML :: load(outer_hash.to_yaml)',雖然我不確定這是100%安全的。 – hgcrpd