YAMLの複数行文字列スタイル(| と >)

YAMLの複数行文字列オプションをマスター:リテラルブロック(|)とフォールドブロック(>)。それぞれの使い分けとJSONとの相互変換方法を学びます。

Strings

詳細な説明

YAMLの最も強力な機能の一つが複数行文字列のサポートです。JSONではすべての文字列を1行にまとめ、改行には \n エスケープシーケンスを使う必要があるため、長いテキストが読みにくくなります。YAMLはこの問題をエレガントに解決する2つのブロックスカラースタイルを提供します。

リテラルブロックスカラー(|)-- 改行を保持:

description: |
  This is line one.
  This is line two.
  This is line three.

JSONに変換すると:

{
  "description": "This is line one.\nThis is line two.\nThis is line three.\n"
}

YAMLの各改行がJSON文字列で \n としてそのまま保持されます。末尾の改行はデフォルトで含まれます。

フォールドブロックスカラー(>)-- 改行をスペースに変換:

description: >
  This is a long paragraph
  that will be folded into
  a single line.

JSONに変換すると:

{
  "description": "This is a long paragraph that will be folded into a single line.\n"
}

改行がスペースに置換されるため、YAMLファイル内で折り返して表示したい長い段落に最適です。

チョンピングインジケータで末尾の改行を制御:

  • |+ または >+(keep):すべての末尾改行を保持
  • |- または >-(strip):最後の末尾改行を削除
  • | または >(clip、デフォルト):末尾改行を1つだけ保持
clean: |-
  No trailing newline here

JSON結果:"No trailing newline here"(末尾に \n なし)

JSONからYAMLに変換する際\n 文字を含む文字列はブロックスカラーを使って可読性を向上させることができます。特に埋め込みスクリプト、SQLクエリ、ドキュメントテキストに有効です。

ユースケース

CI/CD設定ファイルで複数行のシェルスクリプトやSQLクエリを埋め込む場合。GitHub Actionsのステップで複雑なbashコマンドを実行するケースなど、可読性が重要な場面で使用します。

試してみる — JSON ↔ YAML Converter

フルツールを開く