如何反转Hash.inspect或Array.inspect? (又名.to_s)在Ruby中

时间:2011-08-15 19:33:49

标签: ruby serialization hash inspect

我不小心通过调用等于my_hash.to_s的{​​{1}}将Ruby哈希保存到Ruby 1.9中的字符串。这给了我一个这样的字符串:

my_hash.inspect

我现在想将其恢复为哈希值。这是怎么做到的?

我不是在寻找其他序列化技术的解释,我知道它们。我只需要一种方法将其恢复原状,以便我能以正确的方式保存它。

2 个答案:

答案 0 :(得分:19)

最快的答案是:eval

my_hash = eval(my_str_hash)

答案 1 :(得分:6)

评估它。

当然,对于任意输入来说这是不安全的,但是你说你知道序列化问题。它不适用于包含递归引用的集合或eval(x.inspect)!= x的其他对象。