Rubyでjsonを扱う方法
RubyでJSONを扱うには、標準ライブラリのjsonを使用する方法があります。
jsonライブラリを使用すると、RubyオブジェクトをJSON文字列に変換したり、JSON文字列をRubyオブジェクトにパースすることができます。
まず、jsonライブラリをインクルードします。
require 'json'
RubyオブジェクトをJSONに変換する
Rubyのハッシュや配列などのオブジェクトをJSON文字列に変換するには、JSON.generateまたはto_jsonメソッドを使用します。
require 'json' # Rubyのハッシュを定義 ruby_hash = { name: "Alice", age: 30, city: "New York" } # ハッシュをJSON文字列に変換 json_string = JSON.generate(ruby_hash) # または json_string = ruby_hash.to_json puts json_string # 出力: {"name":"Alice","age":30,"city":"New York"}
JSONをRubyオブジェクトに変換する
JSON文字列をRubyのハッシュや配列に変換するには、JSON.parseメソッドを使用します。
require 'json' # JSON文字列を定義 json_string = '{"name":"Alice","age":30,"city":"New York"}' # JSON文字列をRubyのハッシュに変換 ruby_hash = JSON.parse(json_string) puts ruby_hash # 出力: {"name"=>"Alice", "age"=>30, "city"=>"New York"} # 変換されたハッシュのアクセス puts ruby_hash["name"] # 出力: Alice
オプションを使用して変換をカスタマイズする
JSON.parseやJSON.generateには、変換時にオプションを指定してカスタマイズすることもできます。
require 'json' # 数値を文字列として扱う json_string = '{"name":"Alice","age":"30","city":"New York"}' ruby_hash = JSON.parse(json_string, symbolize_names: true) puts ruby_hash # 出力: {:name=>"Alice", :age=>"30", :city=>"New York"} # ハッシュをJSON文字列に変換する際にインデントをつける pretty_json = JSON.pretty_generate(ruby_hash) puts pretty_json # 出力: # { # "name": "Alice", # "age": "30", # "city": "New York" # }
このようにして、RubyでJSONデータを簡単に扱うことができます。