JSONのパーズとシリアライズ
ruby-jsonを使って、JSONのパーズとシリアライズをしてみます。
サンプル:
require 'json/lexer' # 引数をJSONにシリアライズして、パーズする。 def process( value ) # 値をJSONにシリアライズ json = value.to_json puts json # JSONをパーズする jsonobj = JSON::Lexer.new(json).nextvalue p jsonobj end puts "\nString---" process( "mii" ) puts "\nArray---" process( ["mii", "tora", 1, 2] ) puts "\nHash---" process( { :mii=>{ :name=>"mii", :age=>1 }, :tora=>{ :name=>"tora", :age=>2 } })
実行結果:
String--- "mii" "mii" Array--- ["mii","tora",1,2] ["mii", "tora", 1, 2] Hash--- {"mii":{"name":"mii","age":1},"tora":{"name":"tora","age":2}} {"mii"=>{"name"=>"mii", "age"=>1}, "tora"=>{"name"=>"tora", "age"=>2}}
YAMLと違ってオブジェクトのシリアライズはサポートされていないようです。(to_sした文字列になります。)
サンプル:
class Kitten def initialize( name ) @name = name @age = 1 end end puts "\nObject---" process( Kitten.new("mii") )
実行結果:
Object--- "#<Kitten:0x4938c68>" "#<Kitten:0x4938c68>"