2009年07月01日

【1日1Rails】JSONへの変換、デコード

Ruby 1.8.7
Rails 2.3.2
JSONへの変換、デコード
to_json
ActiveSupport::JSON.decode


# とりあえず、変換用の変数を作ってみる
>> val = []
>> val.push( {:a => 1, :b => 2, :c => 3} )
>> val.push( {:d => 4, :e => 5, :f => 6} )
>> val.push( [11, 12, 13, 14] )
  => [{:b=>2, :c=>3, :a=>1}, {:d=>4, :f=>6, :e=>5}, [11, 12, 13, 14]]

# 変換してみる
>> val = val.to_json
  => "[{\"b\": 2, \"c\": 3, \"a\": 1}, {\"d\": 4, \"f\": 6, \"e\": 5}, [11, 12, 13, 14]]"

# 戻してみる
>> ActiveSupport::JSON.decode( val )
  => [{"a"=>1, "b"=>2, "c"=>3}, {"d"=>4, "e"=>5, "f"=>6}, [11, 12, 13, 14]]

# 変なものを戻してみる => 怒られる
>> ActiveSupport::JSON.decode( "{{{" )
  ActiveSupport::JSON::ParseError: Invalid JSON string

# 空文字を渡してみる
>> ActiveSupport::JSON.decode( "" )
  => false