YAML ↔ JSON変換ツール
YAMLとJSONをリアルタイムで相互変換するオンラインツール。Docker Compose、Kubernetes、GitHub ActionsなどのDevOps設定ファイルを安全に変換できます。
YAML ↔ JSON変換ツール
すべての変換はブラウザ内で処理され、入力したデータはサーバーに送信されません。 Docker Compose、Kubernetesマニフェスト、CI/CD設定などのDevOps設定ファイルを安全に変換できます。
YAML ↔ JSON変換ツールとは?
YAML ↔ JSON変換ツールは、YAML形式とJSON形式をリアルタイムで相互変換するオンラインツールです。Docker、Kubernetes、GitHub ActionsなどのDevOps環境で広く使用される設定ファイル形式を簡単に変換できます。
YAML(YAML Ain’t Markup Language)は、人間が読みやすいデータ直列化形式で、インデントベースの簡潔な文法が特徴です。JSON(JavaScript Object Notation)は、プログラミング言語間のデータ交換に広く使用される軽量フォーマットです。両形式は互換性があり、状況に応じて適切な形式に変換して使用します。
こんな場面で使えます
- Docker Compose設定 – docker-compose.ymlファイルをJSONに変換してプログラムで処理したり、JSON設定をYAMLに変換して可読性を高めたりする場合
- Kubernetesマニフェスト – kubectlのJSON出力をYAMLに変換したり、YAMLマニフェストをJSON APIリクエストボディとして使用する場合
- GitHub Actionsワークフロー – .github/workflows/*.ymlファイルをJSONで分析したり、JSONテンプレートをYAMLワークフローに変換する場合
- CI/CDパイプライン – Jenkins、GitLab CI、CircleCIなどのYAML設定をJSONに変換してスクリプトで処理する場合
- API開発 – OpenAPI/Swaggerスペックをstを行いたい場合
- 設定ファイルの移行 – JSONベースの設定をYAMLに移行したり、その逆を行う場合
- データ検証 – YAMLまたはJSONの文法エラーをリアルタイムで確認してデバッグする場合
- 学習と理解 – YAMLの構造をJSONに変換してデータ階層を明確に把握する場合
主な機能
- 双方向変換 – YAMLからJSON、JSONからYAMLへの双方向変換をサポートします。上部のトグルボタンで変換方向を簡単に切り替えられます。
- リアルタイムバリデーション – 入力と同時に文法エラーを検出して表示します。有効な入力は緑色、エラーがある場合は赤色でステータスを表示します。
- DevOpsサンプル提供 – Docker Compose、Kubernetes Deployment/Service/ConfigMap、GitHub Actionsなど5つの実務サンプルを提供します。ワンクリックでサンプルを読み込んで機能をテストできます。
- シンタックスハイライト – YAMLとJSON両方でキーワード、文字列、数値、ブール値、null値などに色を適用して可読性を高めます。YAMLのアンカー(&)、エイリアス(*)、コメント(#)もハイライト表示されます。
- インデントオプション – 2スペースまたは4スペースのインデントを選択できます。チームやプロジェクトのコーディングスタイルに合わせられます。
- 行番号表示 – 入力と出力の両側に行番号が表示され、特定の行を簡単に参照できます。
- ファイルアップロード/ダウンロード – .yaml、.yml、.jsonファイルを直接アップロードし、変換された結果をファイルでダウンロードできます。
- 入出力交換 – 「交換」ボタンで出力結果を入力に持ってきて連続作業を行えます。
- 自動保存 – 作成中の内容がブラウザに自動保存され、ページを更新しても復元されます。
- クリップボードコピー – 変換された結果をワンクリックでクリップボードにコピーします。
使い方
- 変換方向の選択 – 上部でYAML → JSONまたはJSON → YAML変換方向を選択します。ボタンをクリックすると入力/出力領域のラベルが自動的に変更されます。
- コード入力 – 左側の入力領域に変換するYAMLまたはJSONを入力または貼り付けます。「サンプル」ボタンでDevOps例を読み込むこともできます。
- バリデーション確認 – 入力領域下部で文法の有効性ステータスを確認します。エラーがある場合はエラーメッセージが表示されます。
- 結果確認 – 右側の出力領域で変換された結果を確認します。入力と同時にリアルタイムで変換されます。
- コピーまたはダウンロード – 「コピー」ボタンでクリップボードにコピーするか、「ダウンロード」ボタンでファイルとして保存します。
YAMLとJSONの比較
YAMLとJSONはどちらもデータ直列化形式ですが、それぞれの特徴と長所・短所があります:
- 可読性 – YAMLはインデントベースで人間が読み書きしやすいです。JSONは中括弧とカンマが多く、複雑なデータでは可読性が低下する場合があります。
- パース速度 – JSONは構造がシンプルでパース速度が速いです。YAMLは様々な機能(アンカー、エイリアスなど)によりパースが複雑です。
- コメントサポート – YAMLは#記号でコメントを書けます。JSONは公式にはコメントをサポートしていません。
- データ型 – どちらも文字列、数値、ブール値、配列、オブジェクトをサポートします。YAMLは日付、タイムスタンプなど追加の型をサポートします。
- 使用環境 – YAMLは主に設定ファイル(Docker、K8s、Ansibleなど)に使用されます。JSONはAPI通信、Webアプリケーションのデータ交換に広く使用されます。
DevOpsサンプル詳細
このツールは実務でよく使用される5つのDevOps設定ファイルサンプルを提供します:
- Docker Compose – マルチコンテナアプリケーションを定義するdocker-compose.ymlの例です。Webサーバー、データベースなど複数のサービス構成を示しています。
- Kubernetes Deployment – Pod配布を管理するK8s Deploymentマニフェストです。レプリカ数、コンテナイメージ、リソース制限などの設定を含みます。
- Kubernetes Service – Podへのネットワークアクセスを定義するK8s Serviceマニフェストです。LoadBalancer、ClusterIPなどサービスタイプを設定します。
- Kubernetes ConfigMap – アプリケーション設定を保存するK8s ConfigMapの例です。環境変数や設定ファイルをPodに注入する際に使用します。
- GitHub Actions – CI/CDワークフローを定義するGitHub Actions設定です。ビルド、テスト、デプロイ段階を含む典型的なワークフローを示しています。
活用のヒント
- マルチドキュメント – YAMLの—区切りで複数のドキュメントを分離した場合、各ドキュメントはJSON配列の要素として変換されます。
- アンカーとエイリアス – YAMLのアンカー(&)とエイリアス(*)はJSON変換時に参照された値に置き換えられます。
- 日付形式 – YAMLの日付(2024-01-15)はJSONでは文字列として変換されます。必要に応じて別途処理が必要です。
- 大きなファイル – 数千行のファイルも処理可能ですが、非常に大きなファイルはブラウザのパフォーマンスに影響を与える可能性があります。
- インデントの一貫性 – YAMLでタブとスペースを混在させるとエラーが発生します。このツールはスペースベースのインデントを使用します。
- 自動保存の活用 – 作業中に誤ってページを閉じても自動保存された内容が復元されます。変換方向も一緒に保存されます。
よくある質問
YAMLとJSONは完全に互換性がありますか?
ほとんどの場合、互換性があります。JSONはYAMLのサブセットなので、すべての有効なJSONは有効なYAMLです。ただし、YAMLの一部の高度な機能(アンカー、エイリアス、カスタムタグなど)はJSONに直接対応していないため、変換時に値が展開されたり無視されたりする場合があります。
YAMLのコメントはJSONに変換されますか?
いいえ、JSONは公式にはコメントをサポートしていません。YAMLのコメント(#以降のテキスト)はJSON変換時に削除されます。コメントに重要な情報が含まれている場合は別途保管してください。
変換時にデータの順序は維持されますか?
はい、このツールはキーの順序を維持します。YAMLからJSON、JSONからYAMLへの変換時に元のキー順序がそのまま保持されます。ただし、一部のプログラミング言語やツールでJSONオブジェクトを処理する際に順序が変更される場合があるのでご注意ください。
入力したデータはサーバーに送信されますか?
いいえ、すべての変換はブラウザ内でJavaScriptで処理されます。入力したYAMLやJSONはサーバーに送信されず、機密性の高い設定ファイル(APIキー、パスワードを含む)も安全に変換できます。自動保存機能もブラウザのローカルストレージのみを使用します。
インデント2スペースと4スペースのどちらを選ぶべきですか?
チームやプロジェクトのコーディングスタイルガイドに従ってください。一般的にKubernetesとDockerは2スペースインデントがよく使用されます。深くネストされた構造では2スペースがより簡潔に見え、シンプルな構造では4スペースがより読みやすい場合があります。
YAMLパースエラーが発生した場合はどうすればよいですか?
入力領域下部に表示されるエラーメッセージを確認してください。よくあるエラー原因は以下の通りです:(1) タブ文字の使用 – YAMLはスペースのみ許可します。(2) インデントの不一致 – 同じレベルの項目は同じインデントである必要があります。(3) 特殊文字 – コロン(:)やダッシュ(-)の後にスペースが必要です。(4) 引用符の欠落 – 特殊文字を含む文字列は引用符で囲んでください。
KubernetesマニフェストをJSONに変換してkubectlで使用できますか?
はい、kubectlはYAMLとJSON両方をサポートしています。変換されたJSONファイルをkubectl apply -fで適用したり、kubectl create -fでリソースを作成できます。APIサーバーとプログラムで通信する際にもJSON形式が便利です。