YAMLの設定ファイルをJSONに変換する(逆方向も)
CIはYAMLを、スクリプトはJSONを要求する。ツールチェーンを入れずに設定ファイルを相互変換します。
このガイドで使う道具
やりたいこと
Docker Compose・GitHub Actions・Kubernetesのマニフェストなど、設定の世界はYAMLで語りますが、同じデータをスクリプトやAPIへ渡すには厳密なJSONが欲しいことが多いです。
変換する
YAMLを貼って変換すると、インデントからマップと配列を組み立て、JSON側に同じ構造が現れます。逆方向は読みやすいブロック形式のYAMLを出力します。
- 引用符付き文字列・フロー形式・コメント・ブロックスカラー(|と>)に対応しています。
- アンカー・エイリアス・タグ・複数ドキュメントは、誤読する代わりに明確なエラーで知らせます。
具体例
サービス・portsの配列・環境変数を持つdocker-compose.ymlは同じキーを持つJSONオブジェクトになります。"80:80"のように引用された値は数値でなく文字列のままです。
対応範囲
パーサは手書きの一般的な設定をカバーする、明確に限定されたサブセットで、YAML 1.2の全機能ではありません。アンカーや独自タグを使うファイルには、誤った出力でなくエラーが返ります。
- 入力は500KBまで。先頭の---ドキュメントマーカーは1つだけ許可します。
- 変換はすべてローカルです。設定にはホスト名や認証情報が含まれうるため、外部へ出さないことが重要です。