TOML から JSON への変換

左側に TOML を貼り付けると、右側に JSON が表示されます。テーブルはオブジェクトに、テーブル配列は配列に。アップロードなし。

  1. 左側のテキストエリアに TOML を貼り付けます。
  2. 「JSON に変換」をクリック。出力はテーブルのネストを保持した JSON オブジェクトです。
  3. 結果をコピーするか、data.json としてダウンロードします。
  4. datetime 値は ISO 8601 文字列に変換され、数値内のアンダースコアは取り除かれます。
何ができるのか?

TOML 1.0 ドキュメントを JSON オブジェクトにパースします。`[section]` テーブルはネストされたオブジェクトに、`[[items]]` テーブル配列は JSON 配列になります。文字列、整数(16/8/2 進リテラルや桁区切りアンダースコア含む)、浮動小数、ブール、日付、datetime、時刻はすべて JSON の等価表現にマップされます。インラインテーブルとインライン配列も同じ方法で平坦化されます。

TOML 入力:

name = "Ada"
active = true

[address]
city = "London"

JSON 出力:

{
  "name": "Ada",
  "active": true,
  "address": {
    "city": "London"
  }
}

よくある TOML エラーと修正方法

TOML は場所によっては YAML や JSON より厳格な規則を持ちます。以下のパターンが多くのパーサ失敗をカバーします。

  • 引用符のない文字列。 `name = Ada` は無効です — 裸の値はキー/ブール/数値として解釈され、文字列にはなりません。二重引用符を使ってください: `name = "Ada"`。
  • 混在型配列(TOML 0.x)。 TOML 0.5 は配列内の混在型を禁止していましたが、TOML 1.0 は許可します。@iarna/toml は 1.0 に従うので、`[1, "two"]` はここで有効です。0.5 ツールチェーンを通すなら、配列を均質に保ってください。
  • テーブルの再定義。 `[a]` を 2 回定義するのはエラーです。各テーブルヘッダは最大 1 回しか出現できません。キーを 1 つの `[a]` ブロックにマージしてください。
  • タイムゾーンなしの datetime。 `d = 2026-04-26T12:00:00` (Z やオフセットなし) は「ローカル datetime」 — パースはされますが、JSON にはローカル概念がありません。出力は壁時計時刻と同じ文字列で、UTC 時刻ではありません。UTC にするには `Z` を追加: `d = 2026-04-26T12:00:00Z`。
  • トリプルクォートのエスケープの混乱。 TOML の基本複数行文字列は `"""..."""` を使い、エスケープを処理します;リテラル複数行文字列は `\'\'\'...\'\'\'` を使い、処理しません。エスケープルールを混ぜることが最も一般的な複数行文字列のエラーです。
  • インラインテーブルの拡張。 インラインテーブル `point = {x=1, y=2}` は閉じていて自己完結的です — 後で `[point.z]` や `point.z = 3` を書くことはできません。拡張するには、代わりに標準的な `[point]` ブロック構文を使ってください。
よくある質問

datetime は JSON でどう表現されますか?

JSON にネイティブ datetime 型はないため、値は ISO 8601 文字列になります。オフセット付き datetime (`2026-04-26T12:00:00Z`) とローカル datetime (`2026-04-26T12:00:00`) はどちらも文字どおりに文字列化されますが、JSON で曖昧でないのはオフセット形式のみです。

整数のアンダースコアは保持されますか?

いいえ — TOML は読みやすさのために `1_000_000` を許可しますが、パーサはアンダースコアを除去し、JSON 値は `1000000` です。グループ化は純粋に TOML ソーステキストの機能です。

TOML コメントはどうなりますか?

破棄されます。TOML コメントは `#` で始まりますが、JSON にはコメント構文がないため、パーサはこれらを破棄します。コメントを保持する必要があるなら、別の中間表現が必要です。

テーブル配列はサポートされていますか?

はい。複数回繰り返される `[[products]]` ブロックは `products` キーの下の JSON 配列になります。各 `[[products]]` ヘッダが新しい配列エントリを導入し、続くキー値行がそのエントリを埋めます。

本当に大きな TOML ファイルを変換できますか?

テキストエリアが遅くなる前に約 30 MB まで。非常に大きな TOML ファイルは稀です — ほとんどの設定ファイルは 1 MB をはるかに下回ります。

私の TOML はアップロードされますか?

いいえ。すべてはあなたのブラウザで実行されます — データはこのページの JavaScript で解析され、サーバーに送信されることはありません。