対象: JSONライブラリによるJSONとRubyオブジェクトの相互変換JSONのgemを入れればJSONとRubyオブジェクトの相互変換が可能になる。JRubyの場合はjson-x.x.x-java、普通のRuby(1.8系)の場合はjson-x.x.xのgemを入れる必要がある。尚、1.9系のRubyは標準でjsonライブラリが利用できるので、gemを入れずともrequire "json"するだけで良い。 また、JSONライブラリでなく、Active Supportを利用する方法は以下のリンクを参照していただきたい。 Active SupportによるJSONとRubyオブジェクトの相互変換JRubyの場合はgem install json -v 1.6.5コマンドを実行することでjson-1.6.5-javaがインストールされた。 # gem install json -v 1.6.5 Successfully installed json-1.6.5-java 1 gem installed Installing ri documentation for json-1.6.5-java... Installing RDoc documentation for json-1.6.5-java... 普通のRubyの場合はgem install jsonコマンドを実行すればjson-1.6.5がインストールされた。 # gem install json Building native extensions. This could take a while... Successfully installed json-1.6.5 1 gem installed Installing ri documentation for json-1.6.5... Installing RDoc documentation for json-1.6.5... JSONからRubyオブジェクトに変換するのがJSON.parseメソッド、RubyオブジェクトからJSONに変換するのがJSON.generateメソッドである。 require "rubygems" require "json" # JSONからRubyオブジェクトに変換 ruby_array = JSON.parse("[1, 2, 3]") ruby_hash = JSON.parse('{"CPU": "Core i7", "Memory": 8, "HDD": 500}') p ruby_array p ruby_hash # RubyオブジェクトからJSONに変換 json_array = JSON.generate(ruby_array) json_hash = JSON.generate(ruby_hash) p json_array p json_hash このコードの実行結果は以下である。 [1, 2, 3] {"CPU"=>"Core i7", "Memory"=>8, "HDD"=>500} "[1,2,3]" "{\"CPU\":\"Core i7\",\"Memory\":8,\"HDD\":500}" また、ArrayやHashに対してto_jsonメソッドを使用することもできる。 # to_jsonメソッドでJSONに変換 json_array = ruby_array.to_json json_hash = ruby_hash.to_json (2012/03/24)
Copyright(C) 2004-2014 モバイル開発系(K) All rights reserved.
[Home]
|