2013年8月26日月曜日

ハッシュキーをシンボルに変換

ハッシュをJSONファイルにして、また戻しての時にハマったのがキー。
JSONファイルにした後に読み込むとシンボルが文字列になってしまうんですね。
他にもいろいろそんなケースが出てきそうなんですが。

Railsの機能にあるHashキーをシンボルに変換するsymbolize_keys
> {"a" => 1, "b" => 2}.symbolize_keys
=> {:a=>1, :b=>2}


JSON.parseでJSONを読み込んでハッシュのキーをシンボルにする場合は、:symbolize_namesのオプションを付与。
>hash = {"a" => 1, "b" => 2}
=> {"a"=>1, "b"=>2}
> json = hash.to_json
=> "{\"a\":1,\"b\":2}"
> JSON.parse(json)
=> {"a"=>1, "b"=>2}
> JSON.parse(json,  {:symbolize_names => true})
=> {:a=>1, :b=>2}

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。