JSONをYAMLに変換する方法 — Kubernetes・Docker Compose対応
JSONファイルをYAML形式に変換する方法を解説。なぜYAMLに変換するのか、手動変換の面倒さ、FormatArcを使った変換手順、変換結果の読み方を紹介。

KubernetesのマニフェストやDocker Composeの設定ファイルはYAMLで書くのが標準的です。しかし、APIから取得したデータやツールの出力がJSON形式で返ってくることも多くあります。そんなときに必要になるのが、JSONからYAMLへの変換です。
この記事では、なぜYAMLに変換するのか、そして具体的な変換方法を解説します。
なぜ JSONを YAML に変換するのか
JSONとYAMLは構造的に互換性があり、どちらを使っても表現できる内容は同じです。それでもYAMLに変換する理由はいくつかあります。
Kubernetes / Docker Compose の設定
Kubernetesのマニフェストは YAML 形式が事実上の標準です。kubectl で JSON を直接扱うこともできますが、公式ドキュメントやコミュニティのサンプルはほぼすべてYAMLで書かれています。チームでの統一性を考えると、YAMLに合わせるのが自然です。
Docker Composeも同様に docker-compose.yml というYAMLファイルで構成を定義します。
可読性
YAMLは括弧やカンマを使わないぶん、人間にとって読みやすい形式です。設定ファイルのように頻繁に人が編集するものは、YAMLのほうが書きやすいと感じる開発者が多いです。
コメントの追加
JSONにはコメント構文がありません。YAMLに変換すれば、設定値の意図や注意点を # でコメントとして残せます。コードレビューや引き継ぎの際に役立ちます。
手動変換の面倒さ
小さなJSONであれば手で書き換えることもできます。
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "my-service"
}
}
これをYAMLにすると、次のようになります。
apiVersion: v1
kind: Service
metadata:
name: my-service
括弧を消してインデントに置き換え、キーのクォートを外します。この程度なら手作業でも問題ありません。
しかし、配列のネストが深くなったり、複数行の文字列が含まれていたりすると話は別です。100行を超えるJSONを手で変換するのは時間の無駄ですし、インデントのずれがYAMLの構文エラーに直結します。
FormatArc で変換する
JSON to YAML を使えば、ペーストして変換ボタンを押すだけで済みます。
- JSON to YAML を開く
- 左側のエディタにJSONを貼り付ける
- 「変換」ボタンを押す

右側にYAMLの変換結果が表示されます。インデントは2スペースで出力されるので、Kubernetesのマニフェストにそのまま使えます。
処理はすべてブラウザ内で完結します。クラウドの認証情報やシークレットを含むJSONでも、外部にデータが送信されることはありません。
変換結果の読み方
FormatArcが出力するYAMLの基本的な読み方を確認しておきましょう。
- オブジェクト(
{})はインデントで表現されます - 配列(
[])は各要素の先頭に-が付きます - 文字列はクォートなしで出力されます(特殊文字を含む場合はクォートが付きます)
nullはnullのまま出力されます- 数値・真偽値もそのまま出力されます
たとえば、次のJSONを変換した場合を見てみましょう。
{
"ports": [80, 443],
"enabled": true,
"comment": null
}
YAMLではこうなります。
ports:
- 80
- 443
enabled: true
comment: null
配列の要素がオブジェクトの場合は、- の後にキーが続く形になります。慣れると括弧だらけのJSONよりも見通しがよくなります。
まとめ
JSONからYAMLへの変換は、Kubernetesや Docker Compose を使う開発者にとっては日常的な作業です。手動変換はミスの元になるので、JSON to YAML でサッと変換してしまうのが効率的です。
YAMLとJSONの構文上の違いについてはYAMLとJSONの違いで詳しく解説しています。逆方向の変換が必要な場合はYAMLをJSONに変換する方法を参照してください。