JSON.parseとかしてきたときに、全部Stringになってしまって困ったので。
def convert h
new_hash = Hash.new
h.each do |k, v|
if v.class == Hash
v = convert v
end
if k.class == String and k.match(/^[0-9]*$/)
k = k.to_i
end
if v.class == String and v.match(/^[0-9]*$/)
v = v.to_i
end
new_hash[k] = v
end
new_hash
end
new_hash返すところで、new_hash.symbolize_keyとかすると数値以外のkeyがsymbolになって良い感じ