JSON to YAML Converter

JSON を YAML へブラウザ内だけで変換する無料ツールです。アップロードや登録は不要で、キー順を保ったまま、行番号付きで構文エラーを表示します。Kubernetes / OpenAPI / Docker Compose の設定ファイル作成にも使えます。

ブラウザ内のみで処理
入力 JSONJSON
JSON の構文エラーは行番号の目安付きで表示します。
5 · 85 バイト
出力 YAMLYAML
まだ実行していません。
0 · 0 バイト

JSON to YAML ツール

主な用途

Kubernetes のマニフェスト、Docker Compose、GitHub Actions のワークフロー、Ansible のプレイブック、Helm の values.yaml など、JSON で書かれた設定や API レスポンスを YAML 形式の設定ファイルに移したい場面で使えます。API から返ってきた JSON をそのまま config として運用したいときに、貼り付けるだけで読みやすい YAML に変換できます。

変換の例

入力例: { "name": "formatarc", "features": ["json", "yaml"] } を貼り付けると、出力は name: formatarc / features: ["json", "yaml"] のように、インデントベースの YAML として整形されます。引用符が不要になり、配列やネスト構造も自然なインデントで表現されます。

JSON と YAML の主な違い

YAML はインデントで階層を表すため波括弧が不要で、文字列に引用符も基本的に要りません。YAML はコメント(# 行)が書けますが、JSON は仕様上書けないため、JSON 入力にコメントが含まれていた場合は変換段階で除外されます。本ツールはキー順を入力どおりに保ったまま YAML へ書き出します。

JSON と YAML の早見比較
観点JSONYAML
構造波括弧・角括弧インデント
文字列常に引用符引用符は基本不要
コメント不可# で記述可
キー順本ツールで保持本ツールで保持
主な用途API・データ交換設定ファイル・CI/CD

OpenAPI / Swagger 仕様の JSON から YAML 変換

OpenAPI 3.0 / 3.1 や Swagger 2.0 の仕様は JSON で書かれたり出力されたりすることが多いですが、エディタや Lint ツール、CI では YAML が好まれます。JSON の仕様をそのまま貼り付けると、$ref 参照やパスのキー、コンポーネントの順序を崩さずに YAML へ変換します。本ツールはキーをアルファベット順に並べ替えないため、仕様の構造が壊れません。一般的な整形ツールで起きるスキーマ破損を避けられ、Redoc や Swagger UI、Spectral での Lint にそのまま使えます。

変換の流れ

まず JSON として正しく解釈し、そのオブジェクトを YAML へ再出力します。入力が壊れていれば JSON 段階でエラーを返し、行番号の目安を表示します。サーバーへは一切送信せず、すべてブラウザ内で完結します。詳しい変換手順や落とし穴は別記事の「JSON YAML 変換」ガイドで解説しています。

このツールで保たれるもの・保てないもの

キー順、ネスト構造、値の型(文字列・数値・真偽値・null)はそのまま保たれます。JSON はコメントを持たないため、YAML 出力にもコメントは含まれません。出力スタイルは可読性重視のブロック形式を基本としています。

CLI ワンライナー: yq / Python / Node.js

ターミナル派の方や、CI/CD パイプラインに組み込みたい場合へ。次のワンライナーでも、キー順を保ったまま同じブロック形式の YAML が得られます。複数ドキュメントやブロックスカラーなどのエッジケースを含む詳しい手順は、JSON YAML 変換ガイドで解説しています。

yq(単一の Go バイナリ)
yq -P -o=yaml '.' input.json > output.yaml
Python(PyYAML)
python -c "import json,sys,yaml; yaml.safe_dump(json.load(sys.stdin), sys.stdout, sort_keys=False)" < input.json
Node.js(js-yaml)
node -e "const y=require('js-yaml'),f=require('fs'); console.log(y.dump(JSON.parse(f.readFileSync(0,'utf8'))))" < input.json

関連ツール

関連記事