本文へスキップ
SPCXTools

YAML JSON 変換ツール

YAMLとJSONの設定ファイルを双方向に変換し、構文をチェックします。

ローカルで動作 — ファイルは端末から出ません

ツールを読み込み中…

YAML JSON 変換ツールの使い方

  1. 1変換方向(YAML → JSON または JSON → YAML)を選択します。
  2. 2左側のボックスにYAMLまたはJSONを貼り付けるか、サンプルをクリックします。
  3. 3入力すると右側に変換結果がリアルタイムで表示されます。構文エラーがある場合は、下部に詳細が表示されます。
  4. 4結果をコピーするか、.json または .yaml ファイルとしてダウンロードします。変換方向を切り替えると、結果が入力側に移動します。

YAMLとJSONの相互変換

YAMLとJSONは、設定ファイルや構造化データにおいて最も一般的なフォーマットです。Kubernetesのマニフェスト、Docker Compose、CIパイプライン、OpenAPI仕様などは通常YAMLで記述されますが、APIやJavaScript、多くのツールではJSONが使用されます。このツールは入力と同時に双方向に変換し、構文エラーがある場合はその原因を正確に表示します。

主な機能

  • 双方向変換: YAML → JSON および JSON → YAML。ワンクリックで切り替え可能です。
  • 構文チェック: インデントの乱れ、引用符の閉じ忘れ、無効なJSONなどに対して、分かりやすいエラーメッセージを表示します。
  • マルチドキュメントYAML: 複数のYAMLドキュメントをJSON配列に変換します。
  • アンカー、エイリアス、マージキー: 自動的に解決して展開します。
  • インデント設定: 出力のインデントを2スペースまたは4スペースから選択できます。
  • コピー&ダウンロード: 変換結果をコピー、または .json や .yaml ファイルとしてダウンロードできます。
  • プライバシー保護: データは一切サーバーに送信されません。

変換例

以下のYAMLを:

name: web-app
replicas: 3
ports:
  - 80
  - 443
env:
  NODE_ENV: production

以下のJSONに変換します:

{
  "name": "web-app",
  "replicas": 3,
  "ports": [80, 443],
  "env": {
    "NODE_ENV": "production"
  }
}

YAMLのよくある間違い

  • インデントにタブを使用している。 YAMLはスペースのみ使用可能です。タブを2つのスペースに置換してください。
  • インデントの不一致。 同じ階層の項目は、インデントの深さを正確に揃える必要があります。
  • コロンの後のスペース忘れ。 key:value は1つの文字列として認識されてしまいます。key: value のように記述してください。
  • 文字列内の特殊文字。 @、*、&、!、%、{、[ で始まる値、または : を含む値は、クォーテーションで囲む必要があります。
  • 予期しない型変換。 1.10 のようなバージョン番号は数値の 1.1 として扱われ、先頭のゼロが消えることがあります。文字列として扱うべき値はクォーテーションで囲んでください。

関連ツール

JSON Formatter を使って変換後のJSONを整形・圧縮(ミニファイ)したり、JSON to CSV でJSONをスプレッドシートに変換したり、Diff Checker で2つの設定ファイルを比較したりできます。

よくある質問

YAMLとJSONの違いは何ですか?
どちらもオブジェクト、リスト、文字列、数値、真偽値、nullといった同じ種類のデータを記述します。JSONは波括弧、角括弧、引用符を使用し、APIの標準となっています。YAMLは括弧の代わりにインデントを使用し、コメントを記述できるため、Docker Compose、Kubernetes、GitHub Actions、Ansibleなどの設定ファイルとして人気があります。
YAMLのコメントはどうなりますか?
JSONにはコメント機能がないため、YAMLからJSONに変換する際にコメントは削除されます。再度YAMLに変換しても、元のコメントは復元されません。
複数のYAMLドキュメントはどのように処理されますか?
YAMLファイルには、---で区切られた複数のドキュメントを含めることができます。その場合、コンバーターは各ドキュメントを1つの要素とするJSON配列を出力します。
アンカーとエイリアスはサポートされていますか?
はい。アンカー(&name)、エイリアス(*name)、マージキー(<<: *name)は解決されるため、JSONには完全に展開された値が含まれます。
"no"がfalseになるなど、値の型が変わるのはなぜですか?
このツールはYAML 1.2に準拠しており、trueとfalseのみを真偽値として扱います。古いYAML 1.1のパーサーでは、yes、no、on、offも真偽値として扱われます。値を文字列のまま保持したい場合は、引用符で囲んでください。
データはアップロードされますか?
いいえ。解析と変換はすべてブラウザ上で実行されるため、シークレットや内部ホスト名を含む設定ファイルがデバイスの外部に送信されることはありません。