簡単なto_jsonモジュールを書いた
ruby-jsonではObjectのto_jsonは「オブジェクトをto_sした文字列のJSON表現」を返すので、以下のようなモジュールを書いてみました。インスタンス変数をハッシュのように出力します。
module JsonSupport def to_json instance_variables.inject({}) { |h, name| h.store( name[1..-1], instance_variable_get(name)) h }.to_json end end
サンプルは以下。
require 'json/lexer' require 'json/objects' # テスト用クラス。 class Kitten include JsonSupport # JsonSupport をinclude def initialize( name, age ) @name = name @age = age end end mii = Kitten.new( "mii", 1 ) puts mii.to_json
実行結果です。
{"age":1, "name":"mii"}