YAMLをコンパクトなフロースタイルに圧縮する
展開されたYAMLをコンパクトなフロースタイル(JSONのようなインライン表記)に変換します。ドキュメントを有効に保ちながらファイルサイズと行数を削減します。ブラウザベースの無料YAML圧縮ツール。
Basic Formatting
詳細な説明
YAML圧縮とフロースタイル
YAMLは2つの主要な表記法をサポートしています:ブロックスタイル(従来のインデント形式)とフロースタイル(コンパクトなJSONのようなインライン形式)。YAMLの圧縮とは、ブロックスタイルのドキュメントを可能な限りコンパクトな表現に変換することを意味します。
ブロックスタイル vs フロースタイル
ブロックスタイルはインデントを使用:
server:
host: localhost
port: 8080
features:
- auth
- logging
フロースタイルはブレースとブラケットを使用:
server: {host: localhost, port: 8080, features: [auth, logging]}
両方の表現は意味的に同一です — パースすると同じデータ構造が生成されます。
YAML圧縮が必要な場合
YAMLの圧縮はJSONほど一般的ではありませんが、有効なユースケースがあります:
- スクリプトへの埋め込み — YAMLをコマンドライン引数や環境変数として渡す場合
- ネットワーク伝送 — YAMLを使用するAPIレスポンスのペイロードサイズ削減
- ログ出力 — コンパクトな表現はログファイルでスキャンしやすい
- 比較 — 構造のフラット化により一部のケースでdiff比較が簡単になる
圧縮の仕組み
- YAMLをネイティブデータ構造にパースする
- すべてのコレクションにフロースタイルを使用してシリアライズする(マップは
{}、シーケンスは[]になる) - コメントを削除する(フロースタイルではコメントを保持できない)
- 不要な空白と空行を除去する
重要な制限事項
- コメントは失われる — YAMLコメント(
#)はインラインコレクション内に標準的なコメント構文がないため、圧縮では保持できない - 複数行文字列は折りたたまれる — リテラルおよびフォールドブロックスカラーは引用文字列に変換される
- アンカーとエイリアス — 保持されるが視覚的な明瞭さは低下する
- 可読性 — YAMLの全目的は可読性なので、圧縮はコンパクトなサイズが本当に必要な場合にのみ使用すべき
ユースケース
YAML圧縮は、設定を1行に埋め込む必要がある場合に便利です。例えば、Dockerコンテナの環境変数を通じてYAMLを渡す、シェルスクリプトに設定を含める、URLパラメータでYAMLデータを送信する場合などです。また、2つのYAMLドキュメントを正規のコンパクト形式に圧縮して素早く構造比較する際にも役立ちます。