YAML & TOML 設定完全ガイド

無料 Kubernetes · Docker · Rust · Python · GitHub Actions 登録不要 · データは保存しません · 読み込み後はオフラインでも利用可能

このガイドで紹介するツール

YAML フォーマッター
整形
YAML → JSON
JSONへ
TOML フォーマッター
整形
TOML → JSON
JSONへ
JSON → YAML
YAMLへ
JSON → TOML
TOMLへ
Cron ジェネレーター
Cronを作成
正規表現テスター
パターンをテスト
最終更新:2026年9月28日  ·  v1.0
要点
YAMLとTOMLの違いは?

どちらも人が読める設定形式ですが、YAMLはインデントと柔軟な構文、TOMLは明確な型とセクションを重視します。ツールが要求する形式と編集者の安全性で選びます。

Kubernetesで使うYAML

YAMLはマッピング、シーケンス、スカラーを表現します。一般的なブロック形式ではインデントが階層を決め、KubernetesやDocker Composeの設定に使われます。インデントにはタブではなく空白を使います。二つの空白は慣例であり、必要な深さは構造で決まります。

key: value ではコロン後の空白がキーと値を区切ります。key:value は文字列と解釈される場合があります。特殊文字や数値・真偽値への変換を避けたい値には引用符を付けます。

YAML 1.1では yes、no、on、off も真偽値ですが、YAML 1.2や実際のパーサーでは異なります。--- は複数のKubernetesリソースなどの文書を分離します。YAMLフォーマッターと移行先の両方で確認してください。

YAMLのエラーを防ぐ

見えないタブや兄弟要素のずれは構文エラーや構造の変化を招きます。エディターで空白表示を有効にします。深さが異なること自体は禁止ではなく、意図した階層になっているかが重要です。

暗黙の型はバージョンとスキーマで変わります。先頭ゼロには注意が必要で、YAML 1.1では 0644 が八進数になる場合があります。識別子やバージョン番号を文字列として残すなら引用符を付け、別のパーサーの挙動を前提にしないでください。

アンカー &name とエイリアス *name は値を再利用しますが、移行先の対応は一律ではありません。YAMLからJSONへの変換で展開結果を確認できます。JSONにはコメントやエイリアス構文がないため、元の表記の一部は失われます。

TOMLの構造

TOMLは人が編集する設定のために作られ、キーと値や [package]、[dependencies]、[dev-dependencies] などのセクションを使います。RustのCargoやPythonのpyproject.tomlが例です。PEP 518は2016年にPythonのビルド要件へTOMLを採用しました。

[[table]] はテーブル配列の要素を開始します。文字列、整数、浮動小数点数、真偽値、日時、配列、インラインテーブルには定義された構文があります。port = 8080 は数値、port = "8080" は文字列です。null型はありません。

文字列の外の # からコメントが始まります。複数行文字列や日時についてはパーサーのバージョンと対応機能も確認します。TOMLフォーマッターで確認した後、使用先のプログラムでも読み込めることを検証します。

YAML、TOML、JSONの選択

Kubernetes、Helm、Ansibleなどが要求する場合はYAMLを使います。コメントやエイリアスは便利ですが、型と構造の確認が必要です。TOMLは人が継続的に編集する整理された設定に適しています。

JSONはAPIやpackage.jsonなどに広く対応し、規則が明確です。標準JSONはコメントを許可しません。特定のアプリケーションがコメント付きJSONを読めても、仕様自体は変わりません。

JSONからYAML、JSONからTOML、YAMLからJSON、TOMLからJSONは端末内で変換します。null、日時、数値、入れ子配列を確認してください。コメント、書式、特殊な型情報がすべて自動保存されるわけではありません。

よくある質問

Kubernetes の YAML がローカルでは動くのに CI で失敗するのはなぜですか?

最も多い原因は、タブとスペースのインデントの違いです。一部のエディターはタブを気づかないうちに挿入します。コミット前に、YAML フォーマッターで YAML を通して空白を正規化してください。

YAML にコメントを追加できますか?

はい。文字列の外でコメントとして解釈される # から行末までが無視されます。文字列中の # は値の一部なので、コメント削除時に壊さないよう注意します。

TOML v0.5 と TOML v1.0 の違いは何ですか?

TOML 1.0は2021年に公開され、構文や複数行文字列、キー、日時の細部を明確化しました。パーサーが対応するバージョンと必要な機能を確認し、使用先でファイルを検証してください。

Kubernetes の YAML マニフェストを JSON に変換するにはどうすればよいですか?

YAML→JSON コンバーターを使います。マニフェストを貼り付けて Convert をクリックしてください。出力は kubectl やほとんどの Kubernetes クライアントが受け付ける有効な JSON です。

pyproject.toml が JSON や YAML ではなく TOML を使うのはなぜですか?

Python パッケージングのコミュニティが TOML を選んだのは、(JSON と違って)コメントをサポートし、(YAML の暗黙的な型と違って)曖昧さがなく、人間にやさしいからです。PEP 518(2016年)がこの目的で TOML を指定しました。