本文へスキップ

JSON・YAML 相互変換

JSON・YAML 相互変換

JSON と YAML を並べて編集し、一方を変更するともう一方へ即座に同期します。インデント調整、キーソート、マルチドキュメント YAML 分割に対応。Kubernetes/Helm/CI 設定や API デバッグに便利です。

JSON・YAML 相互変換

🚀 かんたんスタート

  • 左側のエディターに JSON を貼り付けるか入力すると、右側の YAML が自動的に更新されます。
  • 右側に YAML を入力すると、左側に JSON が自動的に更新されます。
  • 同期は完全に双方向です。モードを切り替える必要はありません。どちらかの側を編集すると、もう一方の側が即座に更新されます。
  • 上部のツールバーを使用して、JSON/YAML インデントを設定し、キーの並べ替えを有効にし、複数ドキュメントの YAML 出力を切り替えます。
  • エディターで Tab キーを押すと、フォーカスを移動する代わりにインデントが挿入されます。
  • 各エディターの右上隅には [コピー] ボタンと [クリア] ボタンがあります。どちらかの側をクリアすると両方の側がクリアされます。

📌 よくある利用シーン

  • Kubernetes オーサリング: K8s リソース マニフェストを YAML と JSON の間で変換し、どちらかのビューから構造を検査します。
  • Helm 値のデバッグ:values.yaml を JSON に変換して、IDE 内の型とネストを検査します。
  • CI/CD パイプライン: GitHub Actions (YAML) と JSON を使用する CI システムの間でスニペットを迅速に変換します。
  • API デバッグ: JSON ペイロードを YAML に変換して、階層ビューを明確にします。
  • 設定の移行: YAML と JSON の間で設定ファイルをバッチ変換します。
  • 書式設定と検証: 行/列のエラー位置を使用して、双方向同期を介して JSON/YAML 構文を検証します。

🧭 使い方のヒント

  • 2 スペースの JSON インデントはほとんどの場合に機能します。深いネストまたは Helm 値ファイルには 4 つのスペースを使用します。
  • キーの並べ替えを有効にすると、オブジェクトキーをアルファベット順で表示できます。設定差分の比較がしやすくなります。
  • JSON ルートが配列の場合、マルチドキュメント YAML を有効にして、各要素を個別のドキュメント (---) に分割します。これは、マルチリソースの K8s ファイルに便利です。
  • 入力が無効な場合、エディターは行/列の詳細を示すエラーを表示します。もう一方の側は、最後の有効なコンテンツを保持します。
  • 大きなコンテンツの場合は、過剰な再変換を避けるために、最初に貼り付けて同期を待ってから編集を続けます。

⚠️ 制限事項と互換性

  • YAML 解析は YAML 1.2 仕様に従います。一部の YAML 1.1 固有の動作 (yes/no 自動ブール変換など) は異なる場合があります。
  • JSON 番号は JavaScript IEEE 754 の制限に従います。 53 ビットの安全な精度を超える整数は、精度が失われる可能性があります。
  • YAML アンカーとエイリアス (&、*、<<) は、JSON に変換されるときに具体的な値に展開されます。参照は保存できません。
  • JSON はコメントをサポートしていないため、YAML コメントは変換中に削除されます。

🔒 プライバシーとセキュリティ

  • すべての処理はブラウザ内でローカルに行われます。データがデバイスの外に出ることはありません。

❓ よくある質問

JSON と YAML の違いは何ですか? それぞれをいつ使用する必要がありますか?

JSON と YAML は同じデータ型 (オブジェクト、配列、文字列、数値) を表すことができますが、構文が異なります。 • JSON は中括弧/括弧と二重引用符を使用し、より厳密な構文を持ち、コメントをサポートしません。 • YAML は階層にインデントを使用し、人間が読みやすく、コメントをサポートしていますが、空白には敏感です。 経験則: • API およびマシン間のデータ交換には、JSON を推奨します。 • 人間が頻繁に編集する Kubernetes/Helm/CI 構成の場合は、YAML を推奨します。 • データモデルを変更せずにそれらの間で変換できます。

YAML の Yes/No/on/off が変換後に true/false になるのはなぜですか?

これは、yes/no/on/off/y/n がブール値として解析される可能性がある従来の YAML 1.1 の動作に由来しています。このツールは YAML 1.2 に従っており、true/false のみがブール値です。文字列値が必要な場合は、文字列値を引用符で囲みます (たとえば、「yes」)。

JSON に変換すると YAML コメントが消えるのはなぜですか?

JSON (RFC 8259) ではコメントは許可されません。そのため、YAML コメントは YAML→JSON 変換では保持できず、逆変換時に再構築することもできません。コメントが重要な場合は、元の YAML ファイルを保存してください。

YAML で --- は何を意味しますか?

--- は YAML のドキュメント区切り文字で、複数の独立したドキュメントを 1 つのファイルに保存するために使用されます。これは Kubernetes では一般的で、1 つのファイルにデプロイメント、サービス、および ConfigMap の定義を含めることができます。このツールは、複数ドキュメントの YAML を JSON 配列として読み取り、JSON 配列を分割して --- 分離された YAML ドキュメントに戻すこともできます。

変換後に数値精度が失われた場合はどうすればよいですか?

JavaScript は IEEE 754 倍精度数値を使用します。安全な整数の範囲は -(2^53-1) から 2^53-1 (±9007199254740991) です。より大きな整数 (Snowflake ID や 64 ビットのタイムスタンプなど) は精度が失われる可能性があります。正確な値を保存するには、「9007199254740992」などの文字列として保存します。

変換中に YAML アンカー (& と *) はどうなりますか?

アンカー (&name) とエイリアス (*name) は、YAML 固有の再利用機能です。 JSON には同等の参照メカニズムがないため、変換中にエイリアスは完全なコピーに展開されます。これは損失を伴う変換であり、元のアンカー構造を自動的に復元することはできません。