本文へスキップ
ToolMug

JSON YAML 変換

JSON を Kubernetes のマニフェスト、Docker Compose、CI パイプライン、アプリの設定ファイル向けのすっきりした YAML に変換します。キーの順序はそのまま保たれ、文字列は YAML で必要な場合だけ引用符で囲まれます。無効な JSON は行番号付きでエラーを表示します。

ブラウザ内で動作 — 入力した内容はアップロードされません

JSON → YAML
出力 (YAML)

使い方

  1. 左側に JSON を貼り付けるか、「サンプルを読み込む」をクリックします。
  2. インデントをスペース 2 個か 4 個から選びます。入力と同時に YAML が表示されます。
  3. JSON が無効な場合は、エラーが発生した行が表示されます。
  4. YAML をコピーまたはダウンロードします。「変換の向きを入れ替え」をクリックすると、YAML から JSON に戻せます。

オプションの説明

インデント
Kubernetes、Compose、GitHub Actions ではスペース 2 個が慣例です。4 個を使うチームもあります。
引用符
値を引用符で囲むのは必要な場合だけです。たとえば「: 」を含む文字列、特殊文字で始まる文字列、そのままでは数値・真偽値・null と解釈される文字列(「yes」「on」「1.0」など)が該当します。
長い文字列
行は折り返さないため、URL や証明書のような長い値も 1 行のまま保たれ、差分がきれいに取れます。

変換例

JSON:

{"apiVersion":"v1","kind":"Service","metadata":{"name":"web"},"spec":{"ports":[{"port":80,"targetPort":8080}]}}

YAML:

apiVersion: v1
kind: Service
metadata:
  name: web
spec:
  ports:
    - port: 80
      targetPort: 8080

よくある質問

YAML は JSON の上位互換ですか?

YAML 1.2 以降、ほぼすべての JSON ドキュメントはそのまま有効な YAML でもあります。ブロック形式の YAML に変換すると構造が読みやすく編集しやすくなり、JSON にはないコメントも書けるようになります。

出力で一部の文字列が引用符で囲まれるのはなぜですか?

引用符がないと YAML では意味が変わってしまうためです。YAML 1.1 のパーサーでは「on」「yes」「no」が真偽値になり、「1e3」は数値になり、「: 」を含む値は新しいマッピングの始まりと解釈されます。引用符で囲むことで値は文字列のまま保たれます。

キーの順序は保たれますか?

はい。キーは入力した JSON と同じ順序で出力されます。

データはアップロードされますか?

いいえ。解析も変換もブラウザ内で行われます。ホスト名やトークン、認証情報を含む設定ファイルを扱う場合に安心です。

プライバシー

このツールはすべてブラウザ内で動作します。ファイルやテキストはお使いの端末上で処理され、当サイトのサーバーにアップロードされることはありません。

関連ツール