TOML↔JSON 変換ガイド
JSON(更新: 2026年6月3日)
TOMLとは
TOML(Tom's Obvious Minimal Language)は設定ファイル専用に設計された形式で、GitHub共同創業者のTom Preston-Wernerが作成しました。目標は:
- 人間が読みやすく、意味が明確
- ハッシュテーブルに一意にマッピング可能
- YAMLよりシンプル、JSONより扱いやすい
基本構文
title = "TOML 例"
[owner]
name = "太郎"
email = "taro@example.com"
[database]
host = "127.0.0.1"
port = 5432
enabled = true
TOML vs JSON vs YAML 比較
| 特徴 | TOML | JSON | YAML |
|---|---|---|---|
| コメント | # 対応 |
非対応 | # 対応 |
| 日付型 | ネイティブ対応 | 非対応 | 非対応 |
| 複数行文字列 | 対応 | 非対応 | 対応 |
| 複雑さ | 低 | 中 | 高 |
| パースの曖昧さ | なし | なし | あり |
| 主な用途 | 設定ファイル | データ交換 | 設定ファイル |
TOML↔JSONツールで変換する
ステップ1:変換方向を選択
TOML↔JSONツールを開き、「TOML → JSON」または「JSON → TOML」を選択。
ステップ2:データを入力
TOMLまたはJSONの内容を入力エリアに貼り付け。ファイルの直接アップロードも対応。
ステップ3:変換
変換ボタンをクリック。結果は出力エリアに即座に表示。
ステップ4:コピーまたはダウンロード
ワンクリックで変換結果をコピー、または対応形式のファイルとしてダウンロード。
TOML→JSONのマッピングルール
基本型
string = "hello"
integer = 42
float = 3.14
boolean = true
JSONに変換:
{
"string": "hello",
"integer": 42,
"float": 3.14,
"boolean": true
}
テーブル(Table)→ オブジェクト
[server]
host = "localhost"
port = 8080
JSONに変換:
{
"server": {
"host": "localhost",
"port": 8080
}
}
配列
ports = [8000, 8001, 8002]
日時
TOMLは日付型をネイティブ対応。JSONでは文字列になります:
created = 2026-06-01T10:00:00Z
→ "created": "2026-06-01T10:00:00Z"
JSON→TOMLの注意点
- JSONの
nullはTOMLに対応する型がない — 変換時に特別な処理が必要 - JSON配列内の混合型はTOMLでは不正
- JSONのネストされたオブジェクトはTOMLのテーブルに変換
- 変換後、コメントとフォーマットが要件を満たすか確認を推奨
よくあるユースケース
Rustプロジェクト:Cargo.toml
[package]
name = "my-app"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = "1.0"
tokio = { version = "1", features = ["full"] }
依存バージョンを変更する際、TOML↔JSONツールでJSONに変換してプログラム的に処理し、再変換。
Pythonプロジェクト:pyproject.toml
[project]
name = "my-package"
version = "1.0.0"
requires-python = ">=3.8"
[project.dependencies]
requests = "^2.28"
flask = "^2.3"
静的サイト設定
HugoやZolaなどの静的サイトジェネレーターはTOMLを設定形式として使用し、JSONとの相互変換がよく必要。
他形式との連携
- TOML ↔ YAML:TOML↔JSONツールでJSONに変換後、YAML↔JSONツールでYAMLに変換
- 変換後は JSONフォーマッター で中間結果を検証
- 元のTOMLのコメントは保持し、変換後に手動で補完を推奨
よくあるエラー
| エラー | 原因 | 解決方法 |
|---|---|---|
| TOMLパース失敗 | 構文エラー | テーブルヘッダーとキー値の形式を確認 |
| 日時フォーマット異常 | タイムゾーン情報不足 | 完全なISO 8601形式を使用 |
| nullを変換できない | TOMLにnullなし | 空文字列にするかフィールドを削除 |
| インラインテーブルの形式エラー | 構文が非標準 | 標準テーブル形式に変更 |
まとめ
TOMLはモダンな設定ファイルの優れた選択肢で、JSONとの相互変換はプロジェクト設定管理で非常に実用的です。TOML↔JSONツールで素早く形式変換を行い、YAML↔JSONツールと組み合わせれば3つの形式間で自由に切り替え可能です。
#TOML#JSON#配置文件#Rust#Python