DevTools Japan トップへ

JSON ⇔ YAML 変換

JSONとYAMLを双方向でリアルタイム変換(ブラウザ内で完結)

JSON
YAML
← 左を編集するとYAMLへ / 右を編集するとJSONへ 自動変換 →
変換はすべてブラウザ内で行われ、入力データが外部に送信されることはありません。エラー時は該当する側に理由(可能な場合は行番号)を表示します。YAMLは実用的なサブセットに対応します(アンカー/エイリアス・複数ドキュメント・ブロックスカラー | > は非対応。詳細はFAQ参照)。

JSON ⇔ YAML 変換ツールの使い方

本ツールは、JSONとYAMLを双方向で相互変換できる無料のオンラインツールです。左のペインにJSONを貼り付けると右にYAMLが、右にYAMLを貼り付けると左にJSONが、入力に合わせてリアルタイムで表示されます。インストールや会員登録は不要で、変換処理はすべてお使いの端末(ブラウザ)内で完結します。入力したデータが外部のサーバーに送信されることはありません。

使い方はかんたんです。変換したいデータをどちらかのペインに入力・貼り付けるだけで、反対側に変換結果が表示されます。「サンプルを読み込む」ボタンで例となるデータを読み込めるほか、各ペインの「コピー」ボタンで結果をクリップボードにコピーできます。ツールバーの「インデント」設定では、出力のネストに使うスペース数を2スペース/4スペースから選べます。

こんな場面で便利です

Kubernetesのマニフェスト、GitHub Actionsのワークフロー、Ansible、Docker Composeなど、設定ファイルはYAMLで書かれることが多い一方、APIのレスポンスやTerraformの出力、各種ツールの設定はJSONで扱われることも多くあります。JSONで受け取った内容をYAMLに整形して設定ファイルに貼り付けたり、逆にYAMLの設定をJSONに変換してプログラムから読み込んだりと、フォーマットを行き来する日常的な作業を素早くこなせます。

JSONとYAMLの違い

JSON(JavaScript Object Notation)とYAML(YAML Ain't Markup Language)は、どちらもデータ構造を表現するためのフォーマットで、オブジェクト(マップ)・配列(シーケンス)・文字列・数値・真偽値・nullといった基本要素を扱えます。両者は表現力がほぼ同じで相互変換が可能ですが、書き方の見た目が大きく異なります。

項目JSONYAML
構造の表現波かっこ {} と角かっこ []インデント(スペース)と -
キーと値"key": valuekey: value
コメント不可# で記述可能
可読性機械向き・厳密人間向き・設定ファイル向き
主な用途API・データ交換設定ファイル(K8s・CI)

変換時の扱いについて

JSON→YAML変換では、特別な意味を持つ文字を含む文字列や、数値・真偽値に見えてしまう文字列は自動的にクォート(引用符付け)して、意味が変わらないようにします。改行を含む文字列はダブルクォートと \n で表現します。YAML→JSON変換では、# で始まるコメントを除去し、nulltruefalse や数値を適切な型に変換します。インデントにはスペースを使用してください(タブはYAMLの仕様上インデントに使えません)。

よくある質問

JSONとYAMLを相互に変換できますか?
はい。左側のJSONを編集すると右側のYAMLへ、右側のYAMLを編集すると左側のJSONへ、入力に合わせてリアルタイムで双方向に変換します。ネストしたオブジェクトや配列、真偽値・null・数値・文字列に対応し、必要に応じて文字列を自動でクォートします。すべてブラウザ内(クライアントサイド)で処理するため、データが外部サーバーに送信されることはありません。
KubernetesやGitHub Actions、Terraformの設定に使えますか?
はい。Kubernetesのマニフェスト、GitHub ActionsのワークフローファイルはYAMLで書かれることが多く、APIレスポンスやTerraformの出力はJSONであることが多いため、両者を行き来する場面で役立ちます。JSONで受け取った設定をYAMLに整形して貼り付けたり、YAMLの設定をJSONへ変換してプログラムから読み込む、といった用途にお使いいただけます。
入力したデータは外部に送信されますか?
いいえ。変換処理はすべてお使いのブラウザ内のJavaScriptで完結します。JSON・YAMLの解析も出力も端末内で行われ、入力内容がサーバーへ送られたり保存されたりすることはありません。社内の設定ファイルやトークンを含むデータでも、ネットワークに送信せずに変換できます。
対応しているYAMLの範囲は?制限はありますか?
実用的なYAMLサブセットに対応しています。マップ(キー: 値)、シーケンス(- 項目)、ネスト、フロー表記([1,2] や {a: 1})、シングル/ダブルクォート文字列、# で始まるコメントの除去、真偽値・null・数値の判別に対応します。一方で、アンカー/エイリアス(& *)、複数ドキュメント(--- で区切る2つ目以降)、ブロックスカラー(| や >)の完全な再現、タグ(!!str など)には対応していません。複数行の文字列は、JSON→YAML変換ではダブルクォートと \n を用いて安全に表現します。
インデントのスペース数は変更できますか?
はい。ツールバーのインデント設定で2スペースと4スペースを選べます。YAMLのネストの深さや、JSON整形時のインデント幅にこの設定が反映されます。KubernetesやGitHub Actionsでは2スペースが一般的です。設定を変更すると、直前に編集していた側の入力を元に再変換して表示します。

関連ツール

カウントダウン計算ツール一覧へ