hashのKEYを数値やシンボルにする

hashのキーを文字列からシンボルへ変更するならActiveSupport使っていればsymbolize_keysを使えばいいけど、これだけのために使えない時はこれでできます。
(参考:rails/keys.rb at master · rails/rails · GitHub)

json_data.keys.each do |key|
  json_data[key.to_sym rescue key) || key] = json_data.delete(key)
end

数値へ変換する時はこれ。to_iだと変換できない時0を返すのでto_iではなくてIntegerを使うべき。

json_data.keys.each do |key|
  json_data[(Integer(key) rescue key) || key] = json_data.delete(key)
end

ちなみにJSONファイルから読み込んでKEYを数値にするならこんな感じ

def load_json json_file_path
  json_data = open(json_file_path) do |io|
    JSON.load(io)
  end
  json_data.keys.each do |key|
    json_data[(Integer(key) rescue key) || key] = json_data.delete(key)
  end
  json_data
end