この問題を抱えている他の人はいますか?
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 オブジェクトに戻すと、キーが String に変換されるようです。