我不小心通过调用等于my_hash.to_s
的{{1}}将Ruby哈希保存到Ruby 1.9中的字符串。这给了我一个这样的字符串:
my_hash.inspect
我现在想将其恢复为哈希值。这是怎么做到的?
我不是在寻找其他序列化技术的解释,我知道它们。我只需要一种方法将其恢复原状,以便我能以正确的方式保存它。
答案 0 :(得分:19)
最快的答案是:eval
。
my_hash = eval(my_str_hash)
答案 1 :(得分:6)
评估它。
当然,对于任意输入来说这是不安全的,但是你说你知道序列化问题。它不适用于包含递归引用的集合或eval(x.inspect)!= x的其他对象。