開発者ツール·7 分

YAML vs JSON:使い分けガイド(例付き)

YAML と JSON の実践的な比較:構文、機能、パフォーマンス、それぞれの最適な用途。

YAML vs JSON:どちらを使うべきか?

JSON(JavaScript Object Notation)と YAML(YAML Ain't Markup Language)は、最も人気のある 2 つのデータシリアライズ形式です。JSON は Web API の共通語であり、YAML は Kubernetes、GitHub Actions、Docker Compose などの設定ファイルで主流です。どちらも人間が読め、同じ種類のデータを表現でき、ほぼすべての現代プログラミング言語で解析できます。

違いは構文、機能、エルゴノミクスにあります。JSON は厳格で曖昧さがない一方、YAML は寛容でコメント、複数行文字列、参照をサポートしています。適切な選択は対象読者と用途次第です。

よくある用途

  • API には JSON:公開 Web API とメッセージペイロード
  • 設定には YAML:Kubernetes マニフェスト、CI/CD パイプライン、サーバーレス設定
  • ログには JSON:オブザーバビリティツールの構造化ログ
  • ドキュメントには YAML:チュートリアル、README、混在データを含むコンテンツファイル
  • ストレージには JSON:MongoDB や CouchDB などの NoSQL データベース

方法 1:UtilBoxx の無料 YAML ↔ JSON コンバーターを使う(推奨)

当社の YAML ↔ JSON コンバーター は双方向変換に対応し、構文検証と並べてプレビューできます。手順は次のとおりです:

  1. utilboxx.com/ja/tools/dev/yamlJson にアクセス
  2. 左パネルに YAML または JSON を貼り付け
  3. 右パネルに変換結果が即座に表示される
  4. 入れ替えボタンで方向を切り替え
  5. ワンクリックで結果をコピー

この方法の長所

  • 検証付きの双方向変換
  • 構文エラーを親切なメッセージでハイライト
  • JSON から YAML への変換でコメントを保持
  • モバイル対応で入力パネルが大きめ
  • 100% ブラウザ内動作、データはアップロードされない

方法 2:コマンドラインツールを使う

`yq` ツール(jq の YAML ラッパー)が広く利用可能です:

```bash # YAML → JSON yq -o=json eval 'file.yaml'

# JSON → YAML yq -P eval 'file.json' ```

一回限りの変換には Python も使えます:

```python import json, yaml data = yaml.safe_load(open("file.yaml")) print(json.dumps(data, indent=2)) ```

スクリプトや自動化に適しています。

方法 3:エディタの拡張機能を使う

VS Code のような最新エディタは YAML と JSON の相互変換を内蔵または拡張でサポートしています。ファイルを開き、言語モードを切り替え、「ドキュメントのフォーマット」を実行します。すでにエディタで作業しているなら最速の方法です。

よくある質問

YAML は JSON のスーパーセットですか?

技術的には JSON が YAML 1.2 のサブセットなので、ほとんどの YAML パーサーは JSON を読めます。しかし実際は 2 つの形式は慣習が異なり、JSON 風の中括弧を YAML 内に書くのは不格好です。仕事に応じて適切なツールを使いましょう。

どちらがパフォーマンスに優れますか?

ほとんどの言語で JSON の方が高速に解析できます。文法がシンプルなためです。YAML パーサーはインデント感受性、複数の構文スタイル、アンカーなどの機能により複雑です。高スループットなサービスでは JSON が速度で勝ちます。

YAML は JSON のすべてをできますか?

はい。YAML は JSON と同じデータ型(数値、文字列、真偽値、配列、オブジェクト)をすべてサポートし、コメント、複数行文字列、アンカー、複合キーなどの拡張も備えます。JSON は意図的にミニマルです。

API で YAML を使うべきですか?

避けてください。すべてのクライアントが安定して解析できるため、API には JSON が最適です。YAML は人間が編集する設定ファイルには優れていますが、機械間トラフィックには過剰です。

結論

YAML も JSON もそれぞれ得意分野があります。ブラウザ内で素早く相互変換するには、UtilBoxx の YAML ↔ JSON コンバーター をいつでも開いておくのが最も手軽です。