JSONとYAMLの概要
JSON(JavaScript Object Notation)とYAML(YAML Ain't Markup Language)は、どちらもデータを記述するためのテキスト形式のフォーマットです。主に設定ファイル、データ交換、APIのレスポンスなどの用途で広く使用されています。
JSONとは
JSONはJavaScriptから派生した軽量でシンプルなデータ記述形式です。キーと値のペアでデータを表現し、主にWebアプリケーションやAPI通信に広く使われています。
JSONの特徴
- シンプルで直感的
- JavaScriptにネイティブに対応
- Web APIで広く利用されている
- 多くのプログラミング言語がサポート
JSONの例
{
"name": "John",
"age": 30,
"isStudent": false,
"skills": ["JavaScript", "Python", "Go"]
}
YAMLとは
YAMLは人間が読み書きしやすいことを重視したデータフォーマットです。インデントや空白を使ってデータ構造を表現します。
YAMLの特徴
- 人間が読み書きしやすい
- コメントが書ける
- 複雑なデータ構造を簡潔に表現可能
- 設定ファイルやCI/CDの構成(例:GitHub Actions、Kubernetesなど)でよく利用される
YAMLの例
name: John
age: 30
isStudent: false
skills:
- JavaScript
- Python
- Go
JSONとYAMLの比較
項目 | JSON | YAML |
---|---|---|
読みやすさ | ○(やや劣る) | ◎(非常に良い) |
書きやすさ | ○(普通) | ◎(簡単) |
コメント機能 | ×(非対応) | ○(対応) |
データサイズ | ◎(コンパクト) | ○(やや冗長) |
パフォーマンス | ◎(高速なパース) | ○(やや遅い) |
利用シーン | Web API、設定ファイル | 設定ファイル、CI/CD |
使い分けのポイント
- JSON: API通信など、機械がデータを扱うシーンで高速性や簡潔さが求められる場合に最適。
- YAML: 設定ファイルやCI/CDパイプラインなど、人間が読み書きする場面で特に利便性が高い。
最近のトレンド
近年ではクラウドインフラのコード化(IaC:Infrastructure as Code)が進み、特にYAMLがCI/CD(GitHub Actions、GitLab CI)やKubernetesなどで頻繁に使われるようになっています。 一方でJSONはREST APIやフロントエンドとバックエンド間のデータ通信フォーマットとして不動の地位を築いています。
さらに最近では、JSONを改良したJSON5などの新フォーマットも注目を集め始めており、JSONの利便性を保ちながらコメント記述などYAMLの利点も取り込もうとする動きが見られます。