YAML・JSON・TOMLの違いと使い分け
YAML・JSON・TOMLはいずれも設定ファイルやデータシリアライズに使われるテキスト形式ですが、可読性・用途・パーサーの対応状況が異なります。各形式の特徴を理解することで適切な形式を選べます。
YAML(YAML Ain't Markup Language)の特徴
YAMLはインデントで階層構造を表すため、JSONより人間が読みやすいのが特徴です。コメント(#)が書けるためDockerCompose・Kubernetes・GitHub ActionsのCI設定など、設定ファイルのデファクトスタンダードとなっています。ただし見えないインデントがバグの原因になりやすく、パーサーの実装によって挙動が異なる場合があります。
JSON(JavaScript Object Notation)の特徴
JSONはJavaScript由来の軽量データ交換フォーマットです。コメントが書けず冗長なクォートが必要ですが、ほぼすべての言語でパーサーが標準ライブラリに含まれておりAPI通信のデファクトです。JSON5はコメントやトレーリングカンマをサポートした拡張版で、設定ファイル(tsconfig.json・.eslintrc)に使われています。
TOML(Tom's Obvious Minimal Language)の特徴
TOMLは「人間が読みやすく書きやすい設定ファイル形式」として設計されました。Rustのcargo.toml・PythonのPyproject.toml・HugoやZolaの設定ファイルで採用されています。セクション([table])とキー=値の形式がINIファイルに似ており、日付型が組み込まれているのが特徴です。
相互変換の活用シーン
KubernetesのマニフェストはYAMLですが、JSONでも記述できます。GitHubのActionsやプラットフォームにより同じ設定をYAML→JSON→TOMLに変換して使い回せると工数が削減できます。YAML JSON ConverterではYAML・JSON・TOMLの3形式を相互に変換でき、変換後のコードをそのままコピーして利用できます。