このツールの動作
入れ子のオブジェクトはテーブルに、オブジェクトの配列はテーブルの配列になります。
{
"db": { "host": "localhost", "pool": { "size": 10 } },
"servers": [{ "name": "a" }, { "name": "b" }]
}
[db]
host = "localhost"
[db.pool]
size = 10
[[servers]]
name = "a"
[[servers]]
name = "b"
根はオブジェクトである必要があります。TOML のファイルはテーブルそのものなので、先頭に JSON の配列があっても、キーを掛ける先がありません。
止めるのは null
TOML に空値はなく、ないものをあるように見せる二つの方法はどちらも誤りです。
- キーを落とすとファイルの意味が変わります。設定が無いことと、何もない値に設定されていることは別です。
""を書くと、そこになかった値を作り出すことになります。
だから変換は止まり、どのキーかを告げます。この変換が妥当な JSON 文書を拒む唯一の場所であり、拒む理由は、続ければ嘘になるからです。
64 ビットを超える整数はそのまま書く
{ "id": 12345678901234567890 }
は二十桁のまま出ます。TOML の整数は符号付き 64 ビットなので、この値は範囲外であり、厳密な読み手はファイルを拒否します。
これは意図したことです。もう一つの道——倍精度を経由する変換器がやるように 12345678901234567000 へ丸めること——は、きれいに解析でき、中身が別の数値になっているファイルを渡すことです。声の大きな失敗のほうが、静かな嘘よりましです。
日付は文字列のまま
JSON に日付の型はありません。"2026-01-01" はテキストとして届き、引用符付きの "2026-01-01" として出ます。
TOML には日付の型がありますが、それを使うことは、著者が日付のつもりだったと決めることです。そうである場合もあり、その文字列が製品コードやフォルダ名、版番号である場合もあります。JSON はすでにテキストだと告げており、それに逆らう理由はありません。
プライバシー
すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。