メインコンテンツへスキップ

無料YAML / JSON コンバーター

YAML を JSON に、JSON を YAML に両方向に変換します。いずれかの形式で貼り付けると、変換された出力がすぐに得られます。サーバーへのアップロードは必要ありません。

読み込み後はオフラインでも動作
JSON出力
出力がここに表示されます…

主な用途

  • Kubernetesマニフェスト用YAMLをJSONに変換Kubernetes YAMLをJSON(またはその逆)に変換して、ツール、検証スクリプト、またはAPI経由での直接適用を行います。
  • Docker Compose YAML / JSON変換検査用にdocker-compose.ymlをJSONに変換し、プログラムによる編集後にYAMLに戻します。
  • CI/CDパイプライン設定の変換GitHub Actions、GitLab CI、CircleCI、および他のパイプライン設定をYAMLとJSON形式の間で変換します。
  • アプリケーション設定ファイルの変換アプリケーション設定ファイルをYAMLとJSON間で変換し、フレームワークを切り替える場合またはツール間で設定を共有する場合に役立ちます。
  • OpenAPI / Swagger仕様の変換OpenAPI 3.xまたはSwagger 2.0 API仕様をYAMLとJSON形式の間で変換します。両方の形式は有効で相互交換可能です。

使い方

変換の両方向 — YAMLからJSON、JSONからYAML — は、ページに組み込まれた手書きのパーサーとエミッターを使ってブラウザ内で完全に行われます。サードパーティのYAMLライブラリもサーバーも関与しません。ロジックは単一のTypeScriptモジュール(lib/yamljson.ts)にあり、マッピング、シーケンス、スカラー、引用符付き文字列、インラインコメントの除去を処理します。

  1. 1
    入力は行ごとに前処理される
    YAML入力の場合、パーサーはテキストを行に分割し、インラインコメントを取り除き(文字列内の#を取り除かないよう引用符の状態を追跡)、インデントの深さを測定し、空行を破棄します — 解析が始まる前に構造化されたトークンのリストを構築します。
  2. 2
    再帰下降パーサーがデータツリーを構築する
    パーサーはインデントレベルを使って構造を決定しながらトークンリストを走査します。シーケンス項目(- value)、マッピングキー(key: value)、ネストされたブロックを認識します。スカラーは、null、真偽値、整数(007のような先頭ゼロの値はサイレントなデータ破損を避けるため拒否)、浮動小数点数を処理する型付き変換ステップを通ります — YAML 1.1のyes、no、on、offのような裸の単語を、真偽値に変換するのではなく文字列として保持する任意のモードもあります。
  3. 3
    対応していないYAML機能は、サイレントに破棄されるのではなくフラグが立てられる
    出力を生成する前に、ツールはアンカー(&name)、エイリアス(*name)、マージキー(<<:)、ブロックスカラー(|と>)、複数ドキュメントのマーカー(---)、重複するマッピングキーをスキャンします。これらのいずれかがあると、微妙に間違ったJSONを生成する代わりに目に見える警告がトリガーされます。
  4. 4
    JSONがシリアライズされる、またはYAMLが生成され、その後利用可能になる
    YAML→JSONの場合、解析された値は選んだインデント(2スペース、4スペース、タブ、または最小化)でJSON.stringifyに渡されます。JSON→YAMLの場合、カスタムのエミッターが解析済みのJavaScriptの値を走査しインデントされたYAMLを生成します。文字列のスカラーは必要な場合(:、#を含む値や予約語のように見える値など)のみ引用符で囲まれます。出力は入力するたびに即座に表示され、コピーまたはダウンロードできます。

関連ツール

よくある質問