「ハッシュの中身が配列」である場合と「配列の中身がハッシュ」である場合の書き方を見ていきます。言葉で説明するよりもコードを見た方が早いと思います。こちらもブロックスタイルとフロースタイルの2つの記述ができます。なお、この記事はドットインストールというプログラミング学習サービスの内容を参考にしています。
作成するファイル
- parse.rb
- data.yml:データファイル
シーケンスのマッピング
ファイルをそれぞれ以下のように作成します。
# parse.rb require 'yaml' emails = YAML.load_file('data.yml') p emails
# data.yml name: - hoge - fuga score: - 90 - 100
以下のコマンドで出力を確認します。
ruby parse.rb {"name"=>["hoge", "fuga"], "score"=>[90, 100]}
フロースタイル
上記と同じデータをフロースタイルで書くと以下のようになります。
names: [hoge, fuga] score: [90, 100]
マッピングのシーケンス
- name: hoge score: 90 - name: fuga score: 100
以下のコマンドで出力を確認します。
ruby parse.rb [{"name"=>"hoge", "score"=>90}, {"name"=>"fuga", "score"=>100}]
フロースタイル
上記と同じデータをフロースタイルで書くと以下のようになります。
- {name: hoge, score: 90} - {name: fuga, score: 100}
まとめ
複雑なデータの記述について見ていきました。入れ子構造なので、インデントに注意して記述してください。