TOML JSON 変換器

TOMLとJSONを即座に相互変換。バリデーション付き。無料、ブラウザ内で処理。

  • ブラウザ内で処理
  • データはブラウザ外に出ません
  • 無料 · 登録不要
両方の欄、ステータス、待機中の変換をクリアします。ツール内にフォーカスがある場合は Ctrl+L(Mac は ⌘+L)でもクリアできます。
TOML を貼り付けます。入力を止めて0.3秒後に、JSON 欄がスペース2個のインデントで更新されます。JSON で元の値を保てない場合は変換を止め、対象フィールドをステータスに表示します。
TOML 欄の現在のテキストを、編集内容も含めてすべてコピーします。空の欄はコピーできません。
JSON オブジェクトを貼り付けます。入力を止めて0.3秒後に TOML 欄が更新されます。null や元の値を保てない数値があると変換を止めます。
JSON 欄の現在のテキストを、編集内容も含めてすべてコピーします。空の欄はコピーできません。
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。

TOMLの活用場面

Rustのプロジェクト設定(Cargo.toml)、Pythonのパッケージ設定(pyproject.toml)、静的サイトジェネレーターの設定(Hugo、Zola)などで広く使われています。既存のJSON設定をTOMLに移行する場合や、TOMLの内容をAPIに渡す場合などに変換が必要になります。

変換で変わるもの

TOML には JSON にない型があり、その逆もあります。次の入力は

# build settings
title = "x"
created = 2026-09-29T10:00:00Z
day = 2026-09-29

[server]
port = 8080

こう変換されます。

{
  "title": "x",
  "created": "2026-09-29T10:00:00.000Z",
  "day": "2026-09-29",
  "server": {
    "port": 8080
  }
}
  • コメントは消えます。 JSON にコメントはありません。

  • 日付・時刻は文字列になります。 オフセット付き日時にはミリ秒(.000Z)が付きます。JSON から TOML に戻すと、TOML の日付ではなく引用符付きの文字列になります。

  • ミリ秒より細かい時刻があると JSON に変換しません。 TOML パーサーはミリ秒までを残し、それより下の桁を切り捨てます(TOML 1.0 はパーサーにこれを認めています)。[build] テーブルの started = 2026-10-01T09:30:00.123456Z は 変換していません:JSON では次の値を変えずに表せません:/build/started:2026-10-01T09:30:00.123456Z はミリ秒より細かい精度を持っています になります。.120000 のような末尾の 0 は情報を失わないので変換します。文字列やコメントの中の日時はテキストなので対象外です。

  • inf と nan があると JSON に変換しません。 JSON には無限大も NaN もなく、JSON.stringify は null と書いてしまいます。次の TOML は

    ratio = inf
    
    [limits]
    max = nan

    変換していません:JSON では次の値を変えずに表せません:/ratio:inf は JSON で表せません(JSON.stringify は null と書きます);/limits/max:nan は JSON で表せません(JSON.stringify は null と書きます) になります。

  • ±(2^53 − 1) を超える整数はどちらの方向でも変換しません。 TOML 1.0 は 64 ビット整数を認めていますが、TOML パーサーは丸めずに integer value cannot be represented losslessly で止まります。JSON → TOML では JSON.parse が丸めてしまうため、フィールドを示して止めます。1e400 のように倍精度の範囲を超える数値も示します。

  • JSON の null があると TOML に変換しません。 TOML に null はありません。次の JSON は

    {"user":{"id":9007199254740993,"nickname":null}}

    変換していません:TOML では次の値を変えずに表せません:/user/id:整数 9007199254740993 は ±(2^53 − 1) を超えるため、JavaScript では丸められます;/user/nickname:null — TOML には null がありません になります。大きな ID は文字列にし、null を置き換えるか削除してから変換し直してください。

  • 変換に失敗すると出力パネルは空になり、コピーボタンは無効になるので、前の結果を誤ってコピーしません。

  • -0.0 はどちらの方向でも符号を保ちます。 JSON の {"offset":-0.0} は TOML の浮動小数点数 offset = -0.0 に、TOML の offset = -0.0 は "offset": -0.0 になります(JSON.stringify だけでは 0 と書きます)。JSON の整数 -0 は整数のゼロとして書きます。{"count":-0} は count = 0 になります。TOML 1.0 は -0 と +0 を 0 と同じ整数と定めています。

FAQ

TOMLとは何ですか?

TOML(Tom's Obvious, Minimal Language)はRustやCargo、Pythonのpyproject.tomlなどで使われる設定ファイル形式です。INIの読みやすさとJSONの表現力を兼ね備えています。

TOMLとYAMLの違いは何ですか?

TOMLは明示的な型付けとシンプルな構文が特徴で、YAMLより曖昧さが少ないです。YAMLはより表現力が高いですがインデントに注意が必要です。

TOMLの日付・時刻型に対応していますか?

はい。RFC 3339形式の日付・時刻・日時型のパースに対応しています。

データはサーバーに送信されますか?

いいえ。すべての変換処理はブラウザ内で完結します。