json yaml toml xml data-formats dev-tech

設定とデータ交換フォーマット:JSON、YAML、TOML、XML

現代のデータフォーマットの長所と短所を比較。APIでのJSON、設定でのYAMLの使い分け、XMLやTOMLが今でも重要な理由を解説します。

2026-04-11

設定とデータ交換フォーマットの包括적ガイド

現代のソフトウェア開発において、データ交換と設定管理は基礎となる要素です。アプリケーションの設定定義、サーバーとクライアント間のデータ送信、あるいは構造化情報の保存など、適切なフォーマットを選択することは、パフォーマンス、読みやすさ、相互運用性にとって非常に重要です。このガイドでは、現在最も普及しているフォーマットについて解説します。

1. 主要なフォーマット:Webと汎用

JSON (JavaScript Object Notation)

JSON は、Webにおけるデータ交換の事実上の標準です。軽量で、人間にとっても読み書きしやすく、マシンにとっても解析や生成が容易です。

  • 用途: Web API、モバイルアプリのバックエンド、シンプルな設定ファイル。
  • 長所: 普遍的なサポート、高速な解析、コンパクト。
  • 短所: コメントが書けない、構文が厳格、データ型が限定的。

YAML (YAML Ain't Markup Language)

YAML は、人間にとっての読みやすさを重視したデータシリアライゼーション規格です。読みやすさが優先される設定ファイルによく使われます。

  • 用途: CI/CDパイプライン(GitHub Actions、GitLab CI)、Kubernetesマニフェスト、複雑な設定。
  • 長所: コメントをサポート、非常に読みやすい、複雑な構造をサポート。
  • 短所: インデントに依存、解析が遅くなる場合がある、「ノルウェー問題」などのエッジケース。

XML (eXtensible Markup Language)

JSONが登場する前は、XML が標準でした。タグを使用して構造を定義し、高い拡張性を持ちます。

  • 用途: SOAP API、ドキュメント保存(Word、Androidマニフェスト)、業界標準プロトコル。
  • 長所: 強力なスキーマ検証(XSD)、メタデータのサポート、確立された技術。
  • 短所: 冗長、読みにくい、解析のオーバーヘッドが大きい。

2. 特化型およびモダンなフォーマット

TOML (Tom's Obvious, Minimal Language)

TOML は、明白なセマンティクスにより読みやすい、最小限の設定ファイルフォーマットを目指しています。RustやPythonのエコシステムで人気が高まっています。

  • 用途: アプリケーション設定(Cargo.tomlpyproject.toml)。
  • 長所: ハッシュテーブルに直接マップされる、JSONとYAMLの優れたバランス。

HCL (HashiCorp Configuration Language)

HCL は、DevOpsツール向けに特別に設計されています。TerraformなどのHashiCorp製品の背後にある言語です。

  • 用途: Infrastructure as Code (IaC)。
  • 長所: 高い可読性、インフラ定義に最適化。

NDJSON (Newline Delimited JSON)

NDJSON は、各行が有効なJSONオブジェクトである、構造化データの保存やストリーミングのためのフォーマットです。

  • 用途: ログファイル、データストリーミング、大規模データセットの処理。

3. 表形式およびレガシーフォーマット

CSV (Comma-Separated Values) & TSV (Tab-Separated Values)

これらは表形式データの最もシンプルなフォーマットです。

  • 用途: スプレッドシート、データベースのエクスポート、シンプルなデータ移行。
  • 短所: エスケープの標準がない、ネストされたデータをサポートしていない。

INI, Properties, Plist

  • INI: Windowsや多くのレガシーアプリで使用されるシンプルなキー/値ペア。
  • Properties: Javaアプリケーションの標準的な設定フォーマット。
  • Plist (Property List): macOSやiOSアプリの標準的な設定フォーマット。

結論:どれを選ぶべきか?

  • Web APIや一般的なデータ交換には JSON を選択。
  • コメントが必要な複雑な設定には YAML を選択。
  • 明確でシンプルなアプリケーション設定には TOML を選択。
  • スプレッドシート向けのフラットな表形式データには CSV を選択。
  • 厳格なスキーマ検証が必要な場合や、レガシーシステムを扱う場合にのみ XML を選択。

これらのフォーマットを理解することで、より堅牢でメンテナンスしやすいシステムを構築できます。最近のツールの多くは、これらのフォーマット間の変換機能を提供していますが、最初から適切なものを選択することで、長期的には多くの時間と労力を節約できます。