YAML ↔ JSON 変換
YAML形式とJSON形式のテキストを相互に変換します。構文チェック機能も搭載。
入力したデータはサーバーに送りません。すべてブラウザ内で処理するので、APIキーや機密情報も安心して使えます。
▶このツールについて
設定ファイルでおなじみの「YAML」と、APIで必須の「JSON」をお互いに変換できるツールです。構文エラーがある場合は場所を教えてくれるバリデーション機能付き。すべてブラウザ上で処理されるため、機密情報が含まれるファイルも安心です。
ツール操作
YAMLとJSONの違いと使い分けの完全ガイド
モダンなシステム開発において、データのシリアライズ形式として「YAML」と「JSON」は最も広く使われています。しかし、それぞれにメリットと特有の落とし穴があるため、用途に応じて正しく使い分けることが重要です。このガイドでは、両者の構文の違い、実務での使い分け、パース時の注意点について詳しく解説します。
YAMLとJSONの決定的な違い
JSON (JavaScript Object Notation) は、データ転送を主目的とした軽量なフォーマットです。対して YAML (YAML Ain't Markup Language) は、人間にとっての読み書きのしやすさを最優先に設計されています。実はYAMLはJSONのスーパーセット(完全上位互換)であるため、有効なJSONはすべて有効なYAMLとして解釈されます。
| 特徴 | JSON | YAML |
|---|---|---|
| 可読性 | 記号(や[])が多く、ネストが深くなると人間には読みづらい | インデントベースで記号が少なく、人間にとって非常に読みやすい |
| コメント | 不可(仕様上存在しない) | 可能(# を使用) |
| パース速度 | 非常に高速、標準ライブラリで完結 | JSONに比べて遅く、外部パーサーが必要な言語が多い |
| 主な用途 | API通信、システム間のデータ連携 | 設定ファイル(CI/CD、Docker、Kubernetes等) |
実務での使い分けパターン(Use Cases)
JSON を選ぶべきシーン
- API通信: フロントエンド(React/Vue)とバックエンド間のデータ連携。ブラウザに
JSON.parse()がネイティブ実装されているため最速です。 - ログ出力: 構造化ログ(ElasticsearchやDatadogへ送信)にはパースしやすい1行JSONが適しています。
- データの保存: MongoDBなどのドキュメント指向DBでのデータ保存フォーマット。
YAML を選ぶべきシーン
- インフラ設定ファイル: Docker Compose(
docker-compose.yml)や、Kubernetesのマニフェストファイル。 - CI/CDパイプライン: GitHub ActionsやGitLab CIの設定。手順を人間がステップバイステップで読み書きするのに最適です。
- コメントが必要な設定: 他の開発者に意図を伝えるための説明文を残したい場合。
よくある落とし穴(Gotchas)とエラー対策
JSONとYAMLを変換する際、特に手書きで編集しているとしばしばエラーに遭遇します。代表的なミスを知っておきましょう。
1. YAMLのインデントミス
YAMLはPythonのようにインデント(空白文字)でデータ構造を表現します。タブ文字は仕様として禁止されているため、必ず半角スペース(通常は2文字)を使用してください。インデントが1つズレるだけで全く異なるデータ構造になってしまいます。
2. JSONの末尾カンマ(Trailing Comma)
JSONの構文チェックで最も多いエラーがこれです。配列やオブジェクトの最後の要素の後にカンマをつけることは、仕様上許されていません。
{
"name": "taro",
"age": 20, /* ← このカンマがあるとJSONParserがエラーを吐く */
} 3. YAMLの暗黙の型変換
YAMLは文字列をクォーテーションなしで書けますが、特定の文字列(true, false, yes, no, on, offなど)は自動的に論理値(Boolean)に変換されます。意図的に文字列として扱いたい場合は、必ず "yes" のようにダブルクォートで囲んでください。ノルウェーの国コード「NO」がパース時にfalseに化けてしまう「Norway Problem」は非常に有名です。
Node.js / Python でのパース方法
Node.js (JavaScript) の場合
JSONはネイティブでサポートされていますが、YAMLを扱うには外部パッケージ(js-yaml等)が必要です。
// JSONのパース(ネイティブ)
const data = JSON.parse('{"key": "value"}');
// YAMLのパース(要 npm install js-yaml)
const yaml = require('js-yaml');
const fs = require('fs');
const doc = yaml.load(fs.readFileSync('config.yml', 'utf8')); Python の場合
標準ライブラリのjsonに加え、YAMLにはPyYAMLを使用するのが一般的です。
import json
import yaml # pip install pyyaml
# JSONのパース
with open('data.json') as f:
data = json.load(f)
# YAMLのパース(安全のため safe_load を使用)
with open('config.yml') as f:
config = yaml.safe_load(f) この相互変換ジェネレーターについて
DockerやKubernetesの設定を記述する際、世の中にあるサンプルコードがJSONで書かれていると、手作業でYAMLに直すのは非常に手間とミスを伴います。当サイトのYAML/JSON変換ツールは、インデントの調整からクォーテーションの処理までをブラウザ上で即座に実行します。サーバーへのデータ送信は一切行わないため、システム固有の機密を含む設定ファイルも安全に変換することができます。
使い方
- YAMLまたはJSONを入力欄に入力します
- 「YAML→JSON」または「JSON→YAML」ボタンをクリックして変換します
- 構文エラーがあれば検出して表示されます。変換結果をコピーして使用できます
いつ使うか
使用例
よくある質問
JSONとYAMLの違いは?
YAMLのインデントルールは?
いつYAMLを使う?
YAMLは何の略?
YAMLとJSONは相互変換できる?
YAML JSON変換ツールの使い方は?
docker-composeをJSONに変換するには?
GitHub ActionsのYAMLをJSONに?
YAML JSON変換はデータを送信する?
YAMLの構文エラーを確認するには?
関連ツール
JSON・データ整形セット