YAML ⇔ JSON 変換ツール
YAML と JSON を相互変換。ブラウザ完結・無料
YAML → JSON
JSON → YAML
YAMLとJSONの違い
YAML の特徴
- • 人間が読みやすい構文
- • インデントでネストを表現
- • コメントが書ける(#)
- • 設定ファイルによく使われる
JSON の特徴
- • 機械が処理しやすい構文
- • 波括弧・角括弧でネストを表現
- • コメントは書けない
- • APIレスポンスによく使われる
よくある質問
YAMLからJSONに変換するとコメントは保持されますか?
いいえ、JSON仕様にはコメント(`//` や `#`)が存在しないため、YAMLのコメント(`# comment`)は変換時に失われます。コメント情報を残したい場合は、(1) JSON5やJSONC形式に変換する別ツールを使う、(2) YAML原本を別途バージョン管理する、(3) コメントをJSONのドキュメントオブジェクト(`"_comment": "..."`)として埋め込む、をご検討ください。
深いネスト構造に対応していますか?
はい、深い階層のYAMLとJSON相互変換に対応しています。実用範囲(数MB以下、ネスト10〜20階層)であれば問題なく処理可能です。ただしJavaScriptのスタック制限により、極端に深い再帰構造(数千階層)はエラーになる可能性があります。Kubernetes ManifestやTerraform設定など実用的な深さなら問題ありません。
YAMLのアンカー(&)と参照(*)に対応していますか?
本ツールは js-yaml ライブラリを使用しており、YAML 1.2仕様の高度な機能(アンカー&、エイリアス *、マージ <<:)にも対応しています。`&anchor` で定義した内容を `*anchor` で再利用するパターンや、ハッシュのマージはJSON変換時に展開されます。ただし変換後のJSONには参照情報は失われるため、出力JSONサイズが大きくなることに注意してください。
null・boolean・数値の型変換は正確ですか?
YAMLのスカラー値(null、true/false、数値)はJSONの対応する型に正しくマッピングされます。注意点: (1) YAMLの `yes`/`no`/`on`/`off` も boolean扱い、(2) 引用符なしの `"123"` は数値、`"123"` は文字列、(3) `0x1F` (16進)、`0o17` (8進) も10進数値に変換、(4) ISO 8601 日付 `2024-10-26` は文字列扱い、です。型に違和感があれば引用符を明示してください。
16進数や8進数などの特殊な数値表記は?
YAMLでは `0x1F`(16進、=31)、`0o17`(8進、=15)、`0b11`(2進、=3)、`1e3`(指数、=1000)などの数値リテラルが使えますが、JSON変換時はすべて10進数に統一されます。逆方向(JSON→YAML)でも10進数のまま出力されるため、可読性のために自分で書き換える必要があります。
YAMLとJSONはどう使い分けますか?
JSON は (1) APIレスポンス・リクエスト、(2) ブラウザ通信、(3) JavaScript親和性が高い、用途で標準。YAML は (1) Kubernetes / Docker Compose / GitHub Actions の設定、(2) Ansible Playbook、(3) アプリケーションの設定ファイル、(4) ドキュメント前置(front matter)、で広く使われます。YAMLは可読性が高くコメント可能、JSONはパースが速くツールサポートが厚い、という特性です。
インデント幅は変えられますか?
本ツールはJSON出力で2スペースインデント、YAML出力で2スペースインデントを採用しています。これらは最も普及している標準で、Kubernetes/Docker Compose/GitHub Actions などの設定ファイルでも標準です。タブインデントや4スペースが必要な場合は、出力結果をエディタにコピーしてエディタ側のインデント変換機能を使ってください。
プライバシーは保護されますか?
はい、本ツールはすべての処理をブラウザ内で完結させます。入力したYAML/JSONデータがst0z.comのサーバーや第三者に送信されることはなく、社外秘の Kubernetes Secrets、本番環境の設定ファイル、APIレスポンスなども安全に変換できます。