目次
YAMLとは
YAMLとは、(YAML Ain’t Markup Language)の略で、ヤメルもしくはヤムルと呼びます。
構造化データやオブジェクトを文字列にシリアライズ化(直列化)する為のデータ形式です。最近は構成管理ツールなどのテンプレートとしてjsonなどの採用されています。よく、jsonと比べられることが多いのですが、jsonはコメントが記述できないことと{}を書く必要がないがないので、jsonよりもyamlで書くことをおススメしています。
YAMLの特長
テキストであるために可読できる。
拡張子は、.yml もしくは .yaml 。
yamlは多くのプログラミング言語から使うことができる。golang,PHP,javascript,actionscript,java,perl,XML, Lua等々
yamlの書き方
YAMLは、基本的に配列・ハッシュ・スカラーの組み合わせでデータを表現します。
配列
配列(シーケンス形式)は – で表現します。-半角スペースvalueの順番です。- の後には必ず半角スペースを入れます。
– aaa
– bbb
– ccc
入れ子構造にすることもできます。
– aaa
– bbb
– ccc
ハッシュ
ハッシュは、key:半角スペースvalueの順に書いて表現します。キー:値、key:value形式で表します。
name: ken
post number: 123-4567
address: tokyo
ハッシュもネスト(入れ子)にすることができます。
name: hana
Address
post number: 234-5678
state: kyoto
{“name”=>”hana”,”Address”=>{“post number”=>”123-4567″,”address”=>”tokyo”}}
配列(シーケンス)とハッシュ(マッピング)の違い
配列は、[]で括ったn個のデータを入れることができる箱です。
Tokyo=[asakusa,kaminarimon,ueno]
このような形で箱の中にデータを入れることができます。
データを取り出す時は、tokyo[0] とするとasakusaを取り出すことができます。データは前から順番に0,1,2,3,4,5…と呼び出します。使い方の例としましては、個人の名前や生年月日、郵便番号、住所などのデータを並べておいて、欲しい情報を指定して取り出す などがあります。
ハッシュは、 data={a:111, b:222, c:333}
配列はのデータはただの aaa や bbb といったデータでしかありません。一方で、ハッシュは a に 111 といったデータが紐づけられています。
ハッシュで書かれていれば、dataはdata[:a]で111、data[:b]で222を取り出すことができます。
スカラー
スカラーとは、値。つまり、文字列や整数、浮動小数点、真偽値(true,false,yes,no)、NULL、日付(yyyy-mm-dd hh:mm:ss)などのことです。
– ‘hogehoge’
– ‘1122334455’
– ‘false’
– 2020-03-01
– null
yamlでスカラーを表現してみる
str: ‘hogehoge’
str2: ‘1122334455’
boolean: true
date: 2020-03-01
float: 0.001
null: null
フロースタイルとブロックスタイル
これまでご紹介してきた書き方は、1行に文字列を納めるフロースタイル[red,blue,green]でしたが、複数行に文字列を記述する表現もあります。それがブロックスタイルです。