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