カテゴリ: Ruby 更新日: 2026/01/29

RubyでYAML・JSON設定ファイルを使いこなす!Hashでの読み書き入門

設定ファイルの扱い:YAML/JSONをHashで読み書きする
設定ファイルの扱い:YAML/JSONをHashで読み書きする

先生と生徒の会話形式で理解しよう

生徒

「アプリの設定やユーザーのデータを、プログラムが終わっても保存しておく方法はありますか?」

先生

「それなら、YAMLやJSONという形式のファイルに保存するのが一般的ですよ。Rubyの『ハッシュ』を使えば、読み書きも簡単です。」

生徒

「ヤメル?ジェイソン?なんだか難しそうな名前ですね……初心者でも扱えますか?」

先生

「名前は強そうですが、中身はただのテキストファイルです。Rubyのハッシュとどう連携させるか、基本から丁寧に解説しますね!」

1. 設定ファイルとは?YAMLとJSONの役割を知ろう

1. 設定ファイルとは?YAMLとJSONの役割を知ろう
1. 設定ファイルとは?YAMLとJSONの役割を知ろう

プログラミングをしていると、プログラムを閉じた後も「設定」や「記録」を残しておきたい場面がたくさん出てきます。例えば、ゲームのハイスコアや、アプリの背景色、ユーザーの名前などです。これらを保存するための専用の書き方がYAML(ヤムル)JSON(ジェイソン)です。

パソコンを触ったことがない方にとって、これらは「特定のルールで書かれたメモ帳」だと思ってください。人間が見ても内容が理解しやすく、なおかつプログラム(Ruby)にとっても読み取りやすいように作られています。Rubyはこのメモ帳の内容を読み取って、自分たちが扱いやすいハッシュ(Hash)という形に変換して使うのが得意なのです。

世界中のWebサービスやアプリ開発で、この二つの形式は毎日のように使われています。この読み書きをマスターすることは、本格的なアプリ作りへの大きな一歩になります。

2. YAML(ヤムル)の基本:人間にとって一番優しい形式

2. YAML(ヤムル)の基本:人間にとって一番優しい形式
2. YAML(ヤムル)の基本:人間にとって一番優しい形式

まずはYAMLから学びましょう。YAMLは、主に「設定ファイル」としてよく使われます。最大の特徴は、見た目がとてもスッキリしていて、まるで箇条書きのように書けることです。Rubyのハッシュと同じように「名前」と「値」をセットにして管理します。

例えば、アプリの設定をYAMLで書くと次のようになります。インデント(行の先頭の空白)を使って、親子関係を表現するのがルールです。


# config.yml というファイルの中身(イメージ)
# title: "私のブログ"
# user: "侍 太郎"
# settings:
#   theme: "dark"
#   font_size: 16

このように、見ただけで何が書いてあるか分かりますよね。Rubyでこのファイルを読み込むと、そのままハッシュとして扱えるようになります。難しい設定をコードの中に直接書かずに、外側のファイルに追い出すことで、プログラムが綺麗に保たれるのです。

3. RubyでYAMLファイルを読み込んでハッシュにする方法

3. RubyでYAMLファイルを読み込んでハッシュにする方法
3. RubyでYAMLファイルを読み込んでハッシュにする方法

それでは、実際にRubyを使ってYAMLファイルを読み込んでみましょう。Rubyには最初からYAMLを扱うための機能が備わっています。require 'yaml'と一行書くだけで、その魔法が使えるようになります。

読み込んだデータは、自動的にRubyのハッシュ(Hash)に変換されます。一度ハッシュになってしまえば、あとは今まで学習した方法でデータを取り出すだけです。


require 'yaml'

# YAML形式のテキストデータ(本来はファイルから読み込みます)
yaml_data = <<~YAML
  name: "Ruby初心者"
  level: 1
  items: ["剣", "盾", "薬草"]
YAML

# YAMLをハッシュに変換
player_status = YAML.load(yaml_data)

puts "プレイヤー名: #{player_status["name"]}"
puts "最初のアイテム: #{player_status["items"][0]}"

プレイヤー名: Ruby初心者
最初のアイテム: 剣

YAML.loadという命令を使うことで、テキストだったデータが便利なハッシュに早変わりしました。これで、外部のファイルからデータを取り込んで活用できるようになります。

4. JSON(ジェイソン)の基本:Webの世界の共通言語

4. JSON(ジェイソン)の基本:Webの世界の共通言語
4. JSON(ジェイソン)の基本:Webの世界の共通言語

次にもう一つの重要形式、JSONについて解説します。JSONは「JavaScript Object Notation」の略で、元々は別の言語の書き方でしたが、今では世界中で最も使われるデータの受け渡し形式になりました。Webサイトがデータをやり取りする時は、ほとんどこのJSONが使われます。

YAMLとの違いは、{ }[ ]、そして " "(ダブルクォーテーション)をたくさん使う点です。見た目は少し機械的ですが、非常に厳格なルールがあるため、どんなコンピュータでも間違いなく読み取れるという安心感があります。


# JSON形式のデータ(イメージ)
# {
#   "site_name": "Rubyガイド",
#   "active": true,
#   "tags": ["初心者", "Ruby", "学習"]
# }

RubyはこのJSONも、一瞬でハッシュに変換して使いこなすことができます。JSONをマスターすれば、インターネット上の様々なサービス(天気予報データなど)と連携するプログラムも作れるようになります。

5. JSONデータをハッシュとして読み書きする

5. JSONデータをハッシュとして読み書きする
5. JSONデータをハッシュとして読み書きする

RubyでJSONを扱うには、require 'json'と記述します。読み込むときはJSON.parse、ハッシュをJSON形式のテキストに書き出したいときはJSON.generate(または .to_json)を使います。

プログラムの中で作ったデータを、他のアプリでも使えるようにJSONで出力してみましょう。


require 'json'

# Rubyのハッシュを作成
my_data = {
  "id" => 101,
  "message" => "こんにちは!",
  "priority" => "high"
}

# ハッシュをJSON形式の文字列に変換
json_string = JSON.generate(my_data)

puts "JSONに変換した結果:"
puts json_string

JSONに変換した結果:
{"id":101,"message":"こんにちは!","priority":"high"}

このように、Rubyで作ったデータを「保存用のテキスト」に変換することをシリアライズと呼びます。逆にテキストをハッシュに戻すことをデシリアライズと呼びます。この言葉は少し難しいですが、要は「荷造り」と「荷解き」のようなものです。

6. ハッシュをファイルに保存して「設定保存」を完成させる

6. ハッシュをファイルに保存して「設定保存」を完成させる
6. ハッシュをファイルに保存して「設定保存」を完成させる

最後に、作成したハッシュの内容を、実際に「ファイル」としてパソコンに保存してみましょう。これができれば、パソコンの電源を切ってもデータが消えない、本物のアプリケーションらしい動きになります。

ここではYAMLを使って、ユーザー情報をファイルに書き出す流れを紹介します。ファイル操作とハッシュ、YAMLの合わせ技です。


require 'yaml'

# 保存したいデータ
user_config = {
  "user_id" => "sample_user",
  "theme_color" => "blue",
  "last_login" => "2026-01-25"
}

# ファイルを作成して書き込む
File.open("settings.yml", "w") do |file|
  file.write(user_config.to_yaml)
end

puts "settings.yml に設定を保存しました!"

このプログラムを実行すると、同じフォルダの中に「settings.yml」というファイルが出来上がります。中身をメモ帳で開いてみると、ハッシュの内容がしっかり書き込まれているはずです。これで、次回プログラムを起動したときに、このファイルを読み込めば前回の続きから処理を始めることができます。

7. ハッシュと設定ファイルの使い分け術

7. ハッシュと設定ファイルの使い分け術
7. ハッシュと設定ファイルの使い分け術

YAMLとJSON、どちらを使えばいいか迷うかもしれません。初心者のうちは、以下のような基準で使い分けるのがおすすめです。

形式 得意なこと 主な用途
YAML 人間が直接書いたり読みやすい アプリの設定ファイル、自分用メモ
JSON 世界基準で機械に優しい 他のサービスとのデータやり取り

どちらを使っても、Rubyの中では結局ハッシュとして扱います。ハッシュの基本(キーと値のペア)さえしっかり理解していれば、ファイルの形式が変わっても怖くありません。データの入れ物であるハッシュと、データの保存先であるYAML/JSON。この連携を使いこなして、便利なツールを作ってみてくださいね!

カテゴリの一覧へ
新着記事
New1
Rails
Rails GoodJob入門!PostgreSQLベースのバックグラウンド処理を初心者向けに完全解説
New2
Ruby
Rubyで学ぶビット演算入門:&・|・^・~・<<・>>の基礎と実例
New3
Rails
RESTとRailsの関係を徹底解説!resources設計と7つの標準アクションを初心者向けにわかりやすく解説
New4
データベース
MySQLアーキテクチャ入門!初心者向けに基本構造と仕組みを徹底解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
Rubyのreduceとinject入門!合計計算や集計を初心者向けに分かりやすく解説
No.2
Java&Spring記事人気No2
Ruby
Rubyの文字列エンコーディング完全ガイド!Encoding・force_encoding・encodeを初心者向け解説
No.3
Java&Spring記事人気No3
Ruby
Rubyの始め方ガイド:インストールから最初のHello Worldまで(Windows/Mac/Linux)
No.4
Java&Spring記事人気No4
データベース
PostgreSQLのWHERE句を徹底解説!初心者でもわかるSQLデータ抽出の基本
No.5
Java&Spring記事人気No5
Ruby
Rubyのfind/detect/find_indexを徹底解説!目的のデータを素早く探す方法
No.6
Java&Spring記事人気No6
Ruby
Rubyで比較演算子を完全解説!==・===・<=>・eql? の使い分け
No.7
Java&Spring記事人気No7
Ruby
Rubyのselect/reject/filterの使い方を完全解説!初心者向けの条件抽出レシピ
No.8
Java&Spring記事人気No8
データベース
PostgreSQLで順位付け!ROW_NUMBER関数の使い方を初心者向けに徹底解説