Интересно, что в вашем примере действителен синтаксис ruby 1.9 Hash. Если ваши данные действительно так просты (без пробелов или других специальных символов в именах ключей), и вы можете обработать их в безопасном контексте, вы можете просто eval
.
irb(main):001:0> eval '{name:"hello", age:"23"}'
=> {:name=>"hello", :age=>"23"}
Это дает вам символы в качестве ключей, поэтому пост-процесс, если вам нужно превратить их в строки:
irb(main):002:0> eval('{name:"hello", age:"23"}').reduce({}) {|h,(k,v)| h[k.to_s] = v; h}
=> {"name"=>"hello", "age"=>"23"}