YAML⇔JSON変換の使い方|違い・対応関係・型の落とし穴まで
公開日:2026年7月31日 更新日:2026年8月30日 運営:シルギア(Analyzegear, Inc.) 対象ツール:YAML⇔JSON変換
YAMLとJSONは、表現できる中身(マッピング、配列、文字列、数値、真偽値、null)がほぼ同じで、違うのは書き方だけです。同じデータを、人が読み書きしやすい形(YAML)と、プログラムが扱いやすい形(JSON)で行き来させたい——設定ファイルやAPIを触っていると、この場面は驚くほど頻繁に出てきます。YAML⇔JSON変換は、その2形式をブラウザの中だけで相互変換するツールです。ここでは両者の違いと対応関係、そしてつまずきやすい型やインデントの扱いを、具体例で整理します。
書き方の違い:インデント構文か、括弧か
最大の違いは構造の表し方です。JSONは波かっこ { } でオブジェクト、角かっこ [ ] で配列を囲み、要素はカンマで区切り、キーと文字列は必ずダブルクォートで囲みます。対してYAMLは、行頭のインデント(半角スペース)で階層を、行頭の - で配列を表し、かっこもカンマも引用符も基本的に省けます。
もう一つ実務で効くのがコメントの可否です。YAMLは # から行末までをコメントとして書けますが、JSONは仕様上コメントを書けません。設定の意図や注意書きを残したいYAMLと、機械が厳密に読み書きするJSON、という性格の違いがここに表れます。本ツールのYAML→JSONでは # のコメント行を読み飛ばし、値だけをJSONに落とします。
キー・値・配列・オブジェクトの対応
両形式は要素が一対一で対応します。JSONのオブジェクトはYAMLのマッピング(key: 値)に、JSONの配列はYAMLのシーケンス(- 項目)に、文字列・数値・真偽値・nullはそのまま同じスカラーに移ります。たとえばJSONの {"a":1,"b":[1,2]} を本ツールでYAML→JSONの逆方向、つまりJSON → YAMLで変換すると、次の4行になります。
- 1行目:a: 1(キー a に数値の 1)
- 2行目:b:(配列の見出し。値は次行以降)
- 3行目: - 1(半角2スペース字下げ+ハイフン)
- 4行目: - 2
逆にこのYAMLをJSON → もう一度JSONへ戻せば、内容は元の {"a":1,"b":[1,2]} と一致します。ネストが深い構造でも、YAML → JSONにすると波かっこと角かっこで階層が視覚化され、どのキーがどの配列を持つのかを確かめやすくなります。
このツールでの相互変換
使い方はシンプルです。「変換方向」でYAML → JSONかJSON → YAMLを選び、入力欄に貼り付けるだけで、入力と同時に自動変換されます。書き方に迷ったら「サンプルを入れる」を押すと、選んだ方向の見本が入ります。結果は「結果をコピー」でクリップボードへ、「結果をダウンロード」で .json / .yaml ファイルとして保存できます。JSON → YAMLの出力インデントは常に半角2スペースに揃います。
変換はすべてお使いのブラウザ内のJavaScriptで完結し、外部ライブラリも使っていません。そのため入力したデータがサーバーに送信されることはありません。社外に出せないアプリケーションの設定ファイルやAPIレスポンスでも、そのまま貼り付けて構造や型を確認できます。
型の落とし穴:引用符・数値・真偽値
YAMLは引用符を省けるぶん、値の「型」が自動で決まります。本ツールでも、引用符の無い 2 は数値、true / false は真偽値、null や ~ はnullとして解釈します。文字列として残したい値は "2" のように引用符で囲んでください。逆にJSON → YAMLでは、"123" や "true" のように別の型に見えてしまう文字列には自動で引用符が付き、読み直したときに意味が変わらないようにしています。
数値の表記にも癖があります。YAMLで version: 1.0 と書くと数値として読まれ、JSONでは末尾のゼロが落ちて 1 と表示されます(数値の 1.0 と 1 は同じ値のため)。また 007 のような先頭ゼロの値は、数値化すると 7 になって表記が変わってしまうため、本ツールはあえて文字列として扱います。郵便番号や電話番号、ゼロ埋めの連番を数値のつもりで書くと桁が崩れやすいので、見た目を保ちたいときは引用符で囲むのが安全です。
設定ファイルでの使い分け
形式の性格を踏まえると、使い分けの目安が見えてきます。
- YAMLが向く:CI/CD(GitHub Actionsなど)、コンテナ(Docker Compose、Kubernetes)の定義。コメントで意図を残せ、記号が少なく差分も読みやすい。
- JSONが向く:Web APIのやり取り、パッケージ定義(package.jsonなど)、ログのように機械が生成・消費するデータ。パーサが軽く、曖昧さが少ない。
編集途中で階層に自信が持てなくなったら、いったんYAML → JSONで構造を確かめ、JSONの下書きから設定を起こしたいときはJSON → YAMLでたたき台を作る——という往復の下ごしらえに本ツールが役立ちます。
インデント崩れとよくあるエラー
YAMLのトラブルの大半はインデントに集約されます。同じ階層は同じ深さに揃える必要があり、深さがずれると「インデントが揃っていません」というエラーになります。特にタブ文字はYAMLの仕様上インデントに使えません。エディタの自動整形でタブが紛れ込むと崩れるため、半角スペースへ統一してください。もう一つ多いのが、コロンの後の半角スペース抜けです。key:値 ではなく key: 値 と、コロンの後に必ずスペースを空けます。
本ツールはこうした問題を黙って壊れた結果にせず、「◯行目: 原因」の形式で問題の行と理由を知らせます。なお、アンカーやエイリアス(&x / *x)、複数行ブロック(| や >)、要素を含むフロー記法、複数ドキュメント(--- 区切り)、タグ(!)といった高度な記法は非対応で、含まれる場合もその行を指摘します。実用的なサブセットに絞った簡易パーサのためで、厳密な処理が必要なときは専用のYAMLライブラリを併用してください。