ToolConvoyToolConvoyv2.6
DATA

JSON を YAML に変換 — JSON を YAML 設定に変換

JSON データを YAML 設定形式に変換します。ブロックスタイル、フロースタイル、複数ドキュメント出力に対応 —— ブラウザ内で完結、アップロード不要。

● ローカル動作 · ゼロコピーパイプラインページ読み込み以降のツールによる通信:0件

YAML は設定フォーマットの戦いに勝利しました。Kubernetes、Docker Compose、GitHub Actions、Ansible、CircleCI、そしてほぼすべての近代的な DevOps ツールが、YAML を主要な設定言語として採用しています。JSON が設定の分野で敗れたのは、コメントが付けられないこと、クォートのルールが厳格なこと、視覚的にスキャンしづらいことが理由です —— ただし YAML は技術的には JSON のスーパーセットであり、有効な JSON ファイルはそのまま有効な YAML です。JSON 設定や API レスポンス、データエクスポートを YAML に変換することは、JSON ベースのツールから YAML ベースのツールへの移行の第一歩であり、両形式は同じデータモデルを共有しているため、変換自体は非常にシンプルです。

簡単ではない変換上の判断が一つあります。それがブロックスタイルとフロースタイルの選択です。ブロックスタイル(key:\n nested: value)は、あたかもアウトラインを読むかのように可読性が高く、バージョン管理の差分もクリーンに出せるため、設定用途における YAML の標準です。フロースタイル({key: {nested: value}})は JSON のインライン記法であり、コンパクトですが、深くネストした構造では読みにくくなります。本コンバーターは、設定ファイルが JSON から YAML への変換の主要な受け手であるため、ブロックスタイルをデフォルトとしています。フロースタイルの切り替えは、コンパクト性が可読性よりも重視されるログ条目、API レスポンス、データ交換のために用意されています。

YAML への変換後、最もよくある次のステップは、CI/CD パイプライン(GitHub Actions workflow、CircleCI 設定)、コンテナオーケストレーションツール(Kubernetes manifest、Docker Compose ファイル)、Infrastructure as Code ツール(Ansible playbook、Terraform variables ファイル)に出力を組み込みすることです。生成された YAML は設定の骨格に過ぎません —— 環境固有の値、シークレット、リソース制限は手動で補完する必要があります。

広告

使い方

  1. JSON を貼り付ける

    JSON オブジェクトをドロップするか、JSON 文字列を貼り付けしてください。コンバーターは構造を走査し、2 スペースインデントのブロックスタイルで YAML を出力します。

  2. 出力スタイルを選択

    ブロックスタイル(可読性が高く、複数行の標準 YAML)とフロースタイル(括弧で囲まれた単一行、JSON 互換)を切替えます。設定ファイルではブロックスタイルがデフォルトです。

  3. YAML をコピーまたはダウンロード

    YAML をクリップボードにコピーするか、.yml ファイルとしてダウンロードします。出力は YAML 1.2 に準拠しており、PyYAML、ruamel.yaml、go-yaml、js-yaml でパースできます。

よくある質問

ブロックスタイルとフロースタイルのどちらを使うべきですか?

設定ファイル(Kubernetes manifest、Docker Compose、CI/CD パイプライン)では、可読性が高く差分も見やすいブロックスタイルがデフォルトです。フロースタイル(`{key: value, ...}`)はログエントリやデータ交換のようにコンパクト性が重要で、構造が単純でインライン記法でも読みやすい場面でデフォルトになります。

YAML の anchor と alias はどう生成されますか?

本コンバーターは重複するサブ構造を自動検出して anchor と alias を出力するわけではありません。JSON オブジェクト内に深い重複構造がある場合、YAML 出力にも同じ構造がそのまま展開されます。生成された YAML の重複ブロックは、必要に応じて手動で YAML anchor(`&name`)と alias(`*name`)に書き換えてください。

複数ドキュメント YAML に対応していますか?

はい —— 「multi-document」を有効にすると、トップレベルの JSON 配列の要素間に `---` セパレーターが挿入されます。複数ドキュメント YAML は Kubernetes リソース一覧や CI/CD パイプライン設定の標準形式です。

文字列のクォートはどう処理されますか?

デフォルトでは、YAML 上の意味を持つ文字を含まない文字列値にはクォートを付けずに出力します。特殊文字(`|`、`>`、`!`、`&`、`*`、`%`、`` ` ``)で始まる文字列、数字に見える文字列、YAML の制御語(`true`、`false`、`null`、`yes`、`no`、`on`、`off`)を含む文字列は、誤解釈を防ぐため自動的にクォートされます。

JSON の数値と YAML の数値はどう対応しますか?

JSON の整数は YAML の整数になり、小数を含む数値は YAML の浮動小数点数になります。`1e10` は YAML 整数 `10000000000` として出力されます。元の文字列表現が重要な場合(製品コードの先頭ゼロなど)は、文字列としてクォートされます。

制限事項

  • コメントは保持されないYAML は `#` コメントをサポートしますが、JSON はサポートしません。そのため出力にはコメントが一切含まれません。YAML 設定にインラインのドキュメントが必要な場合は、手動でコメントを追加してください。
  • YAML タグ指令は出力されないYAML のタグ機構(`!!str`、`!CustomType`)は出力されません。出力はタグ無しの YAML になります。消費側がカスタムデシリアライゼーションのためにタグを必要とする場合は、手動で追加してください。
  • インデントは常に 2 スペースYAML 仕様上は一貫したインデントであれば任意の値が許容されますが、2 スペースが業界標準となっています(Kubernetes、Docker、GitHub Actions)。一部のツールは 4 スペースインデントを要求するため、必要に応じて手動で調整してください。

プラットフォーム別の注意点

macOS
生成された YAML は YAML 対応の任意のエディターで利用できます。JSON 設定を Docker Compose や Kubernetes manifest 用の YAML 設定に一度だけ変換したい場合、ブラウザツールが適しています。
Windows
生成された YAML は YAML 対応の任意のエディターで開けます。JSON の API レスポンスを設定ファイル化するような、一度限りの変換に活用してください。
Linux
コマンドライン作業では `yq eval -P` が JSON を YAML にきめ細かく変換できます。`yq` がインストールされていない環境での一度限りの変換には、ブラウザツールが適しています。
Web
完全にクライアントサイドで動作します。変換は即座に完了します。
広告

関連ツール

広告