JSON <-> YAML 変換

JSONとYAML形式の間で即座に変換します。

JSONとYAMLとは何ですか?

JSON (JavaScript Object Notation) と YAML (YAML Ain't Markup Language) は、どちらも人気のあるデータシリアル化形式です。JSONはWeb APIやデータ交換の標準であり、YAMLはその人間が読みやすい構文のため、設定ファイルに適しています。このツールを使用すると、これらの形式を即座に変換でき、さまざまなシステムやツールでの作業が容易になります。

JSONを理解する

  • REST APIとWebデータ交換の普遍的な標準
  • キーと文字列を二重引用符で囲む必要がある厳格な構文
  • JavaScriptおよびほとんどのプログラミング言語でのネイティブ解析サポート
  • コメントは許可されておらず、データを純粋に保ちます
  • ネットワーク転送にコンパクトで効率的

YAMLを理解する

  • 最小限の構文で人間が読みやすいように設計されています
  • 構造を定義するためにインデント(タブではなくスペース)を使用します
  • ドキュメント用の # 記号によるコメントをサポート
  • Docker Compose、Kubernetes、Ansible、CI/CDパイプラインの標準
  • 複数行の文字列と複雑なデータ型をサポート

各形式をいつ使用するか

JSON

APIのレスポンスとリクエスト、MongoDBのようなデータベースへのデータ保存、ブラウザのlocalStorage、および解析速度が重要なマシン間通信にはJSONを使用します。

YAML

設定ファイル、Infrastructure as Code(Terraform、Kubernetes)、CI/CDワークフロー(GitHub Actions、GitLab CI)、および人間が頻繁に読み書きするファイルにはYAMLを使用します。

主な構文の違い

違いを理解することで、変換エラーを防ぐことができます:

  • JSONはすべてのキーと文字列値に二重引用符を必要とします。YAMLの引用符はほとんどの文字列でオプションです。
  • JSONは項目を区切るためにカンマを使用します。YAMLは代わりに改行とインデントを使用します。
  • JSONはオブジェクトと配列に {} と [] を使用します。YAMLはリストにインデントとダッシュ (-) を使用します。
  • 両方とも true/false をサポートしますが、YAMLは yes/no や on/off もブール値として受け入れます。
  • JSONは null を使用します。YAMLは null、~、または単に値を空にすることを受け入れます。

一般的な変換の落とし穴

形式間の変換時には以下の問題に注意してください:

  • JSONはコメントをサポートしていないため、YAMLコメント(# で始まる行)はJSONへの変換時に失われます。
  • | や > を使用したYAMLの複数行文字列は、JSONでは \n エスケープシーケンスを含む単一行文字列に変換されます。
  • コンテンツを再利用するためのYAMLアンカー (&) とエイリアス (*) にはJSONの同等機能がなく、展開されます。
  • YAMLは型を自動検出するため、'yes' はブール値になります。リテラル文字列が必要な場合は引用符で囲んでください。
  • YAMLはインデントに敏感です。一貫性のないスペースは解析エラーを引き起こします。

ベストプラクティス

  • 特に本番環境で使用される設定ファイルの場合は、変換後に常に出力を検証してください。
  • 特に複雑な設定の場合、変換前に元のファイルのバックアップを取ってください。
  • 読みやすくするために、YAMLでは一貫したインデント(2または4スペース)を使用してください。
  • 本番環境にデプロイする前に、ステージング環境で変換された設定ファイルをテストしてください。

よくある質問

変換は安全でプライベートですか?

もちろんです。すべての変換はJavaScriptを使用してブラウザ内で100%行われます。データがコンピュータから離れることも、サーバーに送信されることもありません。そのため、機密性の高い設定ファイルやAPIレスポンスでも安全です。

大きなファイルを変換できますか?

はい、ツールは大きなファイルを処理できますが、パフォーマンスはブラウザとデバイスに依存します。1MBを超えるファイルの場合、わずかな遅延が発生する可能性があります。非常に大きなファイル(10MB以上)の場合は、パフォーマンス向上のためにyqなどのコマンドラインツールの使用を検討してください。

変換中にYAMLコメントはどうなりますか?

JSONはコメントをサポートしていないため、YAMLコメント(# で始まる行)はJSONへの変換時にすべて失われます。ドキュメントを保持する必要がある場合は、別のファイルに保存するか、データ部分のみを変換することを検討してください。

JSONから変換した後、なぜYAMLに引用符が付くのですか?

コンバーターは、他の型として誤解される可能性のある文字列に引用符を追加します。例えば、YAMLで引用符のない 'yes' はブール値になります。引用符は、値が文字列のままであることを保証します。必要に応じて不要な引用符を手動で削除できます。

ネストされたオブジェクトや配列を変換できますか?

はい、コンバーターは深くネストされた構造、オブジェクトの配列、混合データ型を処理します。JSONとYAMLはどちらも同じ基本的なデータ型をサポートしているため、複雑な構造もシームレスに変換されます。

このツールはどのYAMLバージョンをサポートしていますか?

このツールは現在の標準であるYAML 1.2を使用しています。Docker、Kubernetes、GitHub Actions、およびほとんどの最新ツールで使用されるYAMLと互換性があります。一部の古いツールは、型強制ルールがわずかに異なるYAML 1.1を使用している可能性があることに注意してください。