ルビーハッシュオブジェクトをJSONに変換するにはどうすればいいですか? 質問する

ルビーハッシュオブジェクトをJSONに変換するにはどうすればいいですか? 質問する

Ruby ハッシュ オブジェクトを JSON に変換するにはどうすればよいでしょうか? 以下の例を試していますが、うまくいきません。

RubyDoc を見ていましたが、明らかにHashオブジェクトには メソッドがありません。しかし、Rails は をサポートし、 もサポートしているto_jsonとブログで読みました。が Rails オブジェクトであることは理解できますが、は Rails ネイティブではなく、純粋な Ruby オブジェクトです。つまり、Rails では を実行できますが、純粋な Ruby では実行できないということですか??active_record.to_jsonhash#to_jsonActiveRecordHashhash.to_json

car = {:make => "bmw", :year => "2003"}
car.to_json

ベストアンサー1

Rubyの多くの優れた点の1つは、既存のクラスを独自のメソッドで拡張できることです。これは「クラスの再オープン」またはモンキーパッチングと呼ばれます(後者の意味は変わる可能性がある、 けれど)。

それで、ここを見てください:

car = {:make => "bmw", :year => "2003"}
# => {:make=>"bmw", :year=>"2003"}
car.to_json
# NoMethodError: undefined method `to_json' for {:make=>"bmw", :year=>"2003"}:Hash
#   from (irb):11
#   from /usr/bin/irb:12:in `<main>'
require 'json'
# => true
car.to_json
# => "{"make":"bmw","year":"2003"}"

ご覧のとおり、 require により、メソッドが魔法のように にjson導入されました。to_jsonHash

おすすめ記事