JSON to YAML Converter
JSON を YAML へブラウザ内だけで変換する無料ツールです。アップロードや登録は不要で、キー順を保ったまま、行番号付きで構文エラーを表示します。Kubernetes / OpenAPI / Docker Compose の設定ファイル作成にも使えます。
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 |
|---|---|---|
| 構造 | 波括弧・角括弧 | インデント |
| 文字列 | 常に引用符 | 引用符は基本不要 |
| コメント | 不可 | # で記述可 |
| キー順 | 本ツールで保持 | 本ツールで保持 |
| 主な用途 | 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 -P -o=yaml '.' input.json > output.yamlpython -c "import json,sys,yaml; yaml.safe_dump(json.load(sys.stdin), sys.stdout, sort_keys=False)" < input.jsonnode -e "const y=require('js-yaml'),f=require('fs'); console.log(y.dump(JSON.parse(f.readFileSync(0,'utf8'))))" < input.json