【Java】YAMLとは?記述方法やライブラリを紹介!
  • facebookページ
  • twitterページ
  • 2021.04.30

    【Java】YAMLとは?記述方法やライブラリを紹介!

    YAMLとは?

    YAML (YAML Ain’t Markup Language) とは、構造化されたデータを表現するためのフォーマットのことです。

    次のような用途で使うのに向いているフォーマットとなっています。

    • 各種設定ファイル
    • データ保存用 (シリアライゼーション)
    • データ交換用フォーマット
    • ログファイル

    使用目的は「XML」と似ているのですが、XMLに比べてYAMLは読みやすい、書きやすい、わかりやすいといった利点があります。

    • 読みやすさ:インデントを使ってデータの階層構造を表現
    • 書きやすさ:終了タグが必要ない
    • わかりやすさデータを「配列」「ハッシュ」「スカラー (数値や文字列や真偽値)」だけで表すため理解・記述しやすい

    「#」は行コメントで「—」は、1つのファイル内に複数のYAMLドキュメントを埋め込むときに用いるセパレータとなっています。

    連想配列で記述する場合は、下記の通りです。

    YAMLはあくまで「仕様」であるため、YAMLを処理するライブラリの「実装」が必要です。

    なお、XMLに関しては下記の記事で詳しく解説しています。

    【関連記事】

    ▶︎JavaでXMLを読み込みする方法を解説!概要や出力方法も合わせて紹介

    YAMLのファイル構造の構成要素

    YAMLのファイル構造でよく使用する構成要素として、ハッシュ・リスト・ブロックリテラルの3つを紹介します。

    【ハッシュ】

    インデントした子で、キーと値をコロン(:)で区切って表記すると、ハッシュを作成できます。

    中かっこ({})を使ってJSON風の表記によるハッシュも作成可能です。

    キーと値の各ペアはカンマで区切ります。

    【リスト】

    リストは、YAMLの基礎となる機能です。

    リストを作成するには、リストの各要素の先頭に(-)を付け、スペースのインデントと組み合わせて記述しましょう。

    角かっこ([])を使った、JSON風の表記によるリストも作成可能です。

    【ブロックリテラル】

    ブロックリテラルは、YAMLファイルの中に大量のテキストを簡単に記述可能です。

    縦棒(|)のディレクティブを使った場合、テキスト内の改行は保持されます。

    XMLやその中でCDATAを使ったときの、見にくい表記とは一線を画しているのが特徴です。

    YAMLプロセッサは、最初の行の先頭文字から後をテキストとみなし、テキスト内の改行をすべて保持します(その前のインデントのスペースは無視します)。

    一方、大なり記号(>)のディレクティブを使った場合、改行はすべて無視され、1行の長いテキストとみなされます。

    この2つの他に、縦棒とプラス記号(|+)のディレクティブ(先行するスペースは削除し、改行と後続のスペースは保持)や、(>-)のディレクティブ(すべてのスペースを削除)などがあります。

    YAMLのライブラリについて

    JavaのYAMLライブラリには、主に次の4種類があります

    この中でも、下記のような理由でよく利用されるのが「SnakeYAML」です。

    • ドキュメントわかりやすい
    • 機能が豊富に揃っている
    • Spring Beans、Spring Boot、PlayといったJavaやScalaの有名フレームワークを使用

    JavaでYAMLの読み込み

    SnakeYAMLで外部ファイル読み込むサンプルコードは下記の通りです。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE