11

my_hash.to_sに等しいを呼び出すことにより、Ruby1.9の文字列に誤って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 に答える