🔧Toolify

JSON ↔ YAML 変換ツール(双方向)

左のJSONを編集すると右のYAMLが即時更新され、右のYAMLを編集すると左のJSONが更新されます。「JSON整形」「スワップ」「コピー」ボタン付き。変換はすべてブラウザ内で完結し、データは外部に送信されません。

tools.json-to-yaml-converter.label.json
tools.json-to-yaml-converter.label.yaml

仕組み

JSONとYAMLの歴史と用途

JSON(JavaScript Object Notation)は2000年代初頭にDouglas Crockfordが設計したデータ交換フォーマットです。JavaScriptのオブジェクトリテラル構文を基にしており、ダブルクォート・カンマ・括弧という厳格な文法によって曖昧さがなく、ほぼすべての言語に標準パーサーが存在します。XMLに比べてコンパクトでJavaScriptとの親和性が高く、Web APIで標準となりました。

YAML(YAML Ain't Markup Language)は2001年にClark EvansとIngy döt Netが設計した、人間にとって読みやすいシリアライゼーション形式です。YAML 1.2はJSONの完全なスーパーセットで、すべての有効なJSONは有効なYAMLでもあります。コメント・インデントベースの階層・マルチラインstring・型推論などの機能を追加し、設定ファイルの記述に適しています。

JSON vs YAML — 使い分けの基準

JSONはAPIレスポンス・データベースレコード・サービス間通信など、機械がデータを読む場面に最適です。パーサーの実装がシンプルで、全言語でほぼ同一の挙動が保証されます。コードが主な消費者であれば、JSONがほとんどのケースで正解です。

YAMLはDocker Compose・Kubernetesマニフェスト・GitHub Actionsワークフロー・Ansibleプレイブックなど、開発者が手動で編集する設定ファイルに強みを発揮します。コメントによるインラインドキュメント、ブレースを使わない階層表現、マルチライン文字列のサポートが、設定ファイルの可読性を高めます。

変換時によくある落とし穴

YAMLのインデント感度は最も一般的なエラー源です。JSONのブレースと異なり、スペース1つのずれが構造を変えます。また、YAMLは型推論を行うため、裸の yes が boolean の true に、0755 が8進数に変換されることがあります。本ツールは型を保持するため、数値・真偽値に見える文字列は自動的にクォートで囲みます。

特殊文字も注意が必要です。コロン+スペース(: )・ハッシュ(#)・先頭の特殊記号({, [)を含む文字列はYAMLでクォートが必要です。本ツールはこれらを自動処理しますが、アンカー・エイリアス・マルチラインブロックスカラーなどの高度なYAML機能には非対応で、明確なエラーを表示します。

よくある質問

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

はい。YAML 1.2はJSONの厳格なスーパーセットです。すべての有効なJSONドキュメントは有効なYAMLです。逆(YAML→JSON)は常に成立しません。コメント・アンカー・ブロックスカラーなどのYAML固有機能にJSONの対応がないためです。

YAMLは主に何に使われますか?

設定ファイルが主な用途です。Docker Compose(docker-compose.yml)・Kubernetesマニフェスト・GitHub Actions(.github/workflows)・Ansibleプレイブックなどがその代表例です。開発者が手動で編集するファイルにYAMLの可読性が活きます。

設定ファイルにはJSONとYAMLどちらが向いていますか?

人間が編集するならYAMLが有利です。コメントが書けて視覚的にも整理しやすいためです。機械生成・機械消費の設定にはJSONが向いています。ESLint・Prettier・tsconfigなど多くのツールが両形式に対応しています。

YAMLで特殊文字はどう扱われますか?

コロン+スペース(: )・先頭の { [ # 等・真偽値や数値に見える値は、クォートで囲む必要があります。シングルクォートはエスケープなし、ダブルクォートはJSONと同様のバックスラッシュエスケープです。本ツールは必要な箇所を自動クォートします。

JSON→YAML変換はデータが失われませんか?

JSONがサポートする型(文字列・数値・真偽値・null・オブジェクト・配列)については無損失です。YAMLの型推論によるデータ欠損を防ぐため、誤認される可能性がある文字列はクォートします。

PythonでYAMLをJSONに変換するには?

PyYAMLライブラリを使います。import yaml, json; data = yaml.safe_load(open('file.yaml')); print(json.dumps(data, indent=2)) で変換できます。safe_load は任意のYAMLタグを実行しないため安全です。

Node.jsでJSONをYAMLに変換するには?

js-yamlパッケージを使う方法が一般的です。const yaml = require('js-yaml'); const obj = JSON.parse(fs.readFileSync('file.json')); console.log(yaml.dump(obj))。外部依存なしで書く場合は、本ツールのような純粋なシリアライザを実装します。

対応していないYAML機能は何ですか?

アンカー(&name)・エイリアス(*name)・型タグ(!!int等)・マルチラインブロックスカラー(| や >)・ドキュメント区切り(---)は非対応です。これらは実務YAML全体の5%未満です。これらが必要な場合は専用のYAMLライブラリをご利用ください。

広告について
  • NordVPN

    広告

    厳格なノーログポリシーと6000台以上のサーバーで、安全かつ高速なネット接続を提供するVPN。

    詳細を見る
  • エックスサーバー

    広告

    国内シェアNo.1のレンタルサーバー。WordPress高速化・自動バックアップ・無料SSLで個人サイトに最適。

    詳細を見る
  • ConoHa WING

    広告

    国内最速のレンタルサーバー。WordPressサイト構築・独自ドメイン無料・初期費用0円。

    詳細を見る

関連ツール

最終更新:

AIプロンプトも見る →