🔄 フォーマット変換(JSON / YAML / TOML) の使い方
JSON・YAML・TOML の 3 つのデータ形式を相互に変換できます。設定ファイルの形式移行や、API レスポンスの YAML 化など、開発現場でよく発生する変換作業を瞬時に完了します。各フォーマットにはコメントの有無・型の扱い・インデントルールなどの違いがあり、変換時に注意すべきポイントも本ページで詳しく解説します。docker-compose.yml・Cargo.toml・pyproject.toml など Kubernetes・Rust・Python プロジェクトでよく登場するファイル形式にも対応しています。
🚀 今すぐフォーマット変換を使う →📌 このツールでできること
フォーマット変換ツールでは、以下の 6 方向の変換に対応しています。
- JSON → YAML
- JSON → TOML
- YAML → JSON
- YAML → TOML
- TOML → JSON
- TOML → YAML
- 変換結果のワンクリックコピー
- 構文エラーの即時フィードバック(不正な入力を検出)
- 配列・オブジェクト・数値・真偽値・null など各データ型の自動マッピング
🚀 使い方
- 入力形式(JSON / YAML / TOML)を選択します。
- テキストエリアに変換したいデータを貼り付けます。
- 出力形式を選択します。
- 「変換」ボタンをクリックすると変換結果が表示されます。
- 「コピー」ボタンで変換結果をクリップボードにコピーできます。
💡 活用例
設定ファイルの形式変換
プロジェクトによって異なる設定ファイル形式(docker-compose.yml、Cargo.toml、package.json)の内容を別の形式に変換して流用できます。
# YAML (docker-compose.yml)
services:
web:
image: nginx:latest
ports:
- "80:80"
# 変換後 JSON
{
"services": {
"web": {
"image": "nginx:latest",
"ports": ["80:80"]
}
}
}
API レスポンスの YAML 化
JSON 形式の API レスポンスを YAML に変換すると、コメントを追加できるようになりドキュメント化が容易になります。
Kubernetes / CI 設定の管理
Kubernetes の YAML マニフェストや GitHub Actions の YAML ワークフローを JSON に変換することで、jq コマンドや JavaScript プログラムでの自動化処理が容易になります。設定値の一括検索・置換も JSON 形式の方が扱いやすい場合があります。変換後に jq で特定のフィールドだけを抽出するといったパイプライン処理にも活用できます。
🔍 技術的な背景 / 仕組み
各フォーマットの設計思想と使い分け
JSON(JavaScript Object Notation)は Web API の標準フォーマットとして普及しており、ブラウザのネイティブ API(JSON.parse / JSON.stringify)で扱えます。コメントが書けない・キーは常に文字列・末尾カンマ不可といった制約がありますが、言語・ツール間の互換性が最も高いフォーマットです。
YAML(YAML Ain't Markup Language)は人間が読みやすい設計が特徴で、Kubernetes マニフェスト・GitHub Actions・Ansible など DevOps 領域で広く使われます。インデントでネストを表現するため視認性が高く、# でコメントが書けます。一方でインデントのズレがパースエラーになりやすく、ノルウェー問題(no が false に解釈される)など暗黙的な型変換の落とし穴があります。
TOML(Tom's Obvious, Minimal Language)は Rust の Cargo.toml や Python の pyproject.toml で採用されている設定ファイル向けフォーマットです。型を明示的に表現でき(整数・浮動小数点・日付・配列・インラインテーブル)、INI ファイルに似たセクション形式で直感的に読み書きできます。深いネスト構造には向かない場合がありますが、設定ファイルとしての適性は高いです。
変換時の注意点
変換元のコメントは変換先には引き継がれません(どのフォーマット間でも同様)。YAML の日付型(クォートなしの 2024-01-01)は JSON に変換すると文字列としてシリアライズされます。TOML の整数と浮動小数点は区別されますが、JSON では数値型として統一されます。YAML のアンカー・エイリアスは変換時に展開され、同じデータが複数箇所にコピーされた形になります。
各フォーマットの特徴比較
| 特徴 | JSON | YAML | TOML |
|---|---|---|---|
| コメント | ❌ 不可 | ✅ # | ✅ # |
| 型の明示 | △ 暗黙的 | △ 暗黙的 | ✅ 明示的 |
| 可読性 | △ 括弧多い | ✅ 読みやすい | ✅ セクション形式 |
| ブラウザ標準対応 | ✅ ネイティブ | ❌ ライブラリ必要 | ❌ ライブラリ必要 |
| 主な用途 | API・Web | K8s・CI/CD設定 | Rust・Python設定 |
❓ よくある質問
- Q. YAML のアンカー・エイリアスは変換後も保持されますか?
- YAML のアンカー(
&anchor)とエイリアス(*alias)は変換時に展開されます。JSON や TOML にはアンカーの概念がないため、変換後は同じデータが複数箇所にコピーされた形になります。 - Q. YAML で日付型として解釈された値はどうなりますか?
- YAML はクォートなしの
2024-01-01を日付型として扱います。JSON に変換すると文字列としてシリアライズされます。TOML では日付型として保持されます。 - Q. ネストが深い設定ファイルも変換できますか?
- はい。深いネスト構造も再帰的に変換できます。ただし、TOML は深いネストの表現が冗長になる場合があります。
- Q. コメントは変換先に引き継がれますか?
- コメントはデータ構造に含まれないため、変換時に失われます。JSON・YAML・TOML のいずれの変換でも、コメントは出力に含まれません。
- Q. TOML で使えるデータ型は何ですか?
- TOML は文字列・整数・浮動小数点・真偽値(
true/false)・日付・日時・時刻・配列・インラインテーブル({key = "val"})を明示的にサポートしています。JSON のnullに相当する型は TOML には存在しないため、nullを含む JSON を TOML に変換するとエラーまたはスキップになる場合があります。 - Q. 大きなファイルの変換はできますか?
- ブラウザのメモリの範囲内であれば変換できます。数 MB 程度のファイルは問題なく処理できますが、非常に大きなファイルはブラウザが応答しなくなる場合があります。大きなファイルを変換する場合は、
yq(YAML/JSON/TOML CLI ツール)などのコマンドラインツールの使用をおすすめします。
📚 関連書籍・商品 PR
※ 本リンクはアフィリエイト広告を含みます。