使い方
- TOML のファイルをTOML の文書に貼り付けるか、そこにある例をそのまま使います。
- 確認を読みます。緑は、ファイルが TOML 1.0.0に従っていることを示します。赤は、ファイルが破っている行と規則を示します。
- JSONの出力をコピーするか、data.json としてダウンロードします。
変換の仕組み
読み取りは TOML 1.0.0の文法に従い、仕様が示す木構造を作ります。その木は、字下げ2つの JSON として書き出されます。キーはファイルの順序を保つため、JSON は TOML と同じ順で読めます。
- テーブルとそのサブテーブルは、JSON のオブジェクトになります。
- 配列は JSON の配列になります。二重の角かっこで書かれるテーブルの配列は、オブジェクトの JSON 配列になります。
- インラインテーブルは JSON のオブジェクトになります。そのキーは、行の順序を保ちます。
JSON で表せないもの
- 日付、時刻、オフセット付きの日時は、その文字列になります。例えば "1979-05-27T07:32:00-08:00" です。JSON には日付の型がないため、文字列はオフセットと小数の桁をすべて保ちます。
- 無限大と NaN は、文字列の "inf"、"-inf"、"nan" になります。JSON にはそのような数値がないためです。
- 小数部のない浮動小数点数、例えば1.0は1.0と書かれ、整数の1は1と書かれます。種類を1つしか知らない JSON の読み手は、両方を同じ数として読みます。
確認が従う規則
ファイルは、仕様の規則を1つでも破ると、その時点で拒否されます。次の規則が、ほとんどのエラーの原因です:
- キーは一度だけ定義できます。裸のキーと、同じ名前の引用符付きのキーは、同じキーです。
- テーブルの見出しは、そのテーブルを1度だけ定義します。より長い見出しによって暗に作られたテーブルは後で定義できますが、ドット付きのキーやインラインテーブルで作られたテーブルは定義できません。
- テーブルの配列は、二重の角かっこで書かれた見出しごとに1つのテーブルが増えます。空の角かっこの組で書かれたような固定の配列は、この方法では増えません。
- 整数は符号付きの64ビットの数で、-9223372036854775808から9223372036854775807までです。
例:日付、浮動小数点数、大きな整数
各行は、TOML の1行と、ツールがそれに対して書き出す JSON の値を示します。4行をまとめて実行すると、同じ結果が1つの出力に表示されます。
| TOML の行 | JSON の値 |
|---|---|
| when = 1979-05-27T07:32:00-08:00 | "when": "1979-05-27T07:32:00-08:00" |
| ratio = 1.0 | "ratio": 1.0 |
| port = 8000 | "port": 8000 |
| id = 9223372036854775807 | "id": 9223372036854775807 |
よくある質問
日付が JSON で文字列として書かれるのはなぜですか?
JSON には日付や時刻の型がないため、ツールは TOML ファイルが持つ文字列を書きます。その文字列はオフセットと小数の桁をすべて保つため、JSON を読んでも何も失われません。
なぜ1.0は1.0のままで、1は1のままなのですか?
TOML は、整数と浮動小数点数を、小数点や指数で区別します。JSON は、書く数字でその違いを保ちますが、その違いを保つかどうかは、読み手によって異なります。
二度定義されたテーブルが拒否されるのはなぜですか?
TOML 1.0.0では、テーブルの見出しは、そのテーブルを1度だけ定義し、キーも1度だけ定義します。2度目の定義は、書かれた行でエラーになるため、JSON がファイルと矛盾する値を持つことはありません。
コメントやキーの順序は保たれますか?
コメントは捨てられます。JSON にはコメントがないためです。キーの順序は保たれます。メンバーはファイルの順序で書かれるからです。
複数行にわたる配列を含む TOML ファイルも変換できますか?
はい。TOML 1.0.0が認めるとおり、配列は複数の行にまたがり、コンマで終わることもできます。ツールはそれを1つの JSON 配列として書きます。
貼り付けたテキストは、どこかに送られますか?
いいえ。変換はお使いのブラウザの中で行われ、貼り付けた内容は保存も送信もされません。ただし、信頼できないページに、パスワードやトークンを貼り付けないでください。
出典
数値と文章の最終確認日:2026年11月11日水曜日。