11

my_hash.to_s我不小心在 Ruby 1.9 中通过调用which is equal to将 Ruby 哈希保存到字符串中my_hash.inspect。这给了我一个这样的字符串:

'{"foo"=>{"bar"=>"baz", "qux"=>"quux"}' 

我现在想将其还原为哈希。这是怎么做到的?

我不是在寻找关于其他序列化技术的解释,我知道它们。我只需要一种方法来恢复它,这样我就可以以正确的方式保存它。

4

2 回答 2

22

最快的答案是:eval

my_hash = eval(my_str_hash)
于 2011-08-15T19:38:09.533 回答
6

评估它。

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

于 2011-08-15T19:37:22.877 回答