FormatArcかんたんデータ変換
YAMLJSON変換

YAMLをJSONに変換する方法 — 手動・コマンドライン・ツール

YAMLファイルをJSONに変換する3つの方法を解説。手動変換の手順、PythonやyqによるCLI変換、FormatArcを使ったブラウザ変換。それぞれの使いどころと手順を紹介。

FormatArc YAML to JSON の変換結果

Kubernetesのマニフェストやdocker-compose.ymlをAPIに渡したい、あるいはYAMLで書かれた設定をプログラムから扱いやすいJSONに変換したい。そんな場面は開発中にたびたび出てきます。

この記事では、YAMLをJSONに変換する3つの方法を紹介します。手動変換、コマンドライン、そしてブラウザで完結するツールの順に解説していきます。

手動変換の手順

YAMLとJSONは構造的に互換性があります。手動で変換する場合は、以下のルールに従います。

  • インデントによるネストを {} に置き換える
  • key: value はそのまま "key": "value" にする(キーと文字列値はダブルクォートで囲む)
  • リスト(- item)は [] に置き換える
  • 数値や true / false / null はクォートなしでそのまま使える

たとえば次のYAMLがあります。

server:
  host: localhost
  port: 8080
  debug: true

これをJSONに変換するとこうなります。

{
  "server": {
    "host": "localhost",
    "port": 8080,
    "debug": true
  }
}

単純な構造であれば手作業でもなんとかなります。ただし、YAMLのアンカーや複数行文字列(|>)を含む場合は手動変換の難易度が一気に上がります。

コマンドラインで変換する

Python を使う方法

Pythonが入っている環境なら、ワンライナーで変換できます。

python3 -c "import sys,yaml,json; json.dump(yaml.safe_load(open(sys.argv[1])),sys.stdout,indent=2)" config.yaml

pyyaml がインストールされていない場合は pip install pyyaml で入れてください。

yq を使う方法

yq はYAML版の jq ともいえるコマンドラインツールです。YAML → JSON の変換に特化した機能があります。

yq -o=json config.yaml

インストールは Homebrew なら brew install yq、その他の環境は公式リポジトリを参照してください。CI/CD パイプライン内での変換にはこの方法が向いています。

FormatArc で変換する(一番楽な方法)

環境構築なしで今すぐ変換したいなら、YAML to JSON が手軽です。

手順は3つです。

  1. YAML to JSON を開く
  2. 左側のエディタにYAMLを貼り付ける
  3. 「変換」ボタンを押す

YAML to JSON の変換結果

右側にJSONの変換結果が表示されます。そのままコピーして使えます。

ブラウザ内ですべての処理が完結するため、社内の設定ファイルなど外部に送りたくないデータでも問題なく使えます。

どの方法を選ぶか

状況に応じて使い分けるのがよいでしょう。

  • 小さなファイルを1回だけ変換したい → FormatArc
  • CI/CD や自動化スクリプトに組み込みたい → yq や Python
  • 構造を理解しながら変換したい → 手動

YAMLとJSONの構文上の違いについて詳しく知りたい場合は、YAMLとJSONの違いを参照してください。YAMLそのものの基本についてはYAMLとはでまとめています。

逆方向の変換、つまりJSONからYAMLにしたい場合はJSONをYAMLに変換する方法を参考にしてください。

関連ツール

YAML → JSON