JSONとYAMLを相互変換
YAMLは読みやすさを重視した設定ファイルの形式で、Docker CompやKubernetes、CIの設定など、いろいろな場面で使われています。ここでは、プログラムで扱いやすいJSONと、人が読みやすいYAMLを、どちらの向きにも変換できます。
対応範囲
JSONで表現できる範囲(オブジェクト・配列・文字列・数値・真偽値・null)の相互変換に対応しています。ネスト、フロースタイル([a, b]・{k: v})、ブロックスカラー(|・>)、コメント、引用符付き文字列を扱えます。
※ アンカー/エイリアス(& *)、独自タグ、複数ドキュメント(---区切り)には未対応です。これらを含むYAMLはエラーになります。
JSONとYAMLの違い・使いどころ
どちらも同じデータ構造(オブジェクトや配列)を表せますが、見た目と用途が異なります。
- JSON:波かっこ
{}とダブルクォートで厳密に書く形式。APIのやり取りやプログラム間のデータ交換に向きます。コメントは書けません。 - YAML:インデントで構造を表す、人が読み書きしやすい形式。コメントが書けるため、設定ファイル(Docker Compose・Kubernetes・GitHub Actions など)でよく使われます。
「APIのレスポンス(JSON)を設定ファイル(YAML)に写したい」「YAMLの設定を確認用にJSONへ直したい」といった場面で、この相互変換が役立ちます。
変換の例
次のJSONは、
{ "name": "morphy", "tags": ["web", "tool"] }
YAMLではこのようになります。
name: morphy
tags:
- web
- tool
変換時の注意
JSON→YAMLではコメントは付きません(元のJSONにコメントが無いため)。逆にYAML→JSONではコメントは失われます(JSONがコメントを持てないため)。数値や真偽値は型として扱われるので、文字列として残したい場合はYAML側で引用符を付けてください。
よくある質問
JSONとYAMLはどちらの向きにも変換できますか?
はい。上部のタブで向きを切り替えて相互変換できます。
どんなYAMLに対応していますか?
JSONで表現できる範囲に加え、ネスト・フロー記法・ブロックスカラー・コメント・引用符付き文字列に対応します。
対応していない書き方はありますか?
アンカー/エイリアス、独自タグ、複数ドキュメントの区切りは未対応で、その場合はエラーを表示します。
JSONとYAMLの主な違いは何ですか?
同じデータ構造を表せますが、JSONは厳密でAPI向き、YAMLはインデントで書けてコメントも書けるため設定ファイル向きです。
変換するとコメントは残りますか?
JSONはコメントを持てないため、YAML→JSONではコメントは失われます。JSON→YAMLでは元にコメントが無いため付きません。
データは安全ですか?
はい。変換はブラウザ内だけで行われ、外部に送信されることはありません。
