TOML → JSON

TOML ドキュメントを JSON に変換し、インデントとコンパクト出力を切り替えられます。

TOML ドキュメントを JSON に変換し、インデントとコンパクト出力を切り替えられます。 TOML ドキュメントを JSON に変換し、インデントとコンパクト出力を切り替えられます。

出力

背景

なぜ TOML を JSON にするのか

JSON は Web の共通語であり、すべての API が話し、すべてのエディタが強調表示でき、すべての言語の標準ライブラリにパーサがあります。TOML は人間が編集する設定ファイルに優れていますが、ランタイムのデータ交換形式としてのサポートは JSON に及びません。TOML 設定を JSON しか受け付けないツール(Web プレイグラウンド、スキーマバリデータ、コードジェネレータなど)に与える必要があるとき、信頼できる TOML→JSON 変換器が救世主になります。

両形式とも同じプリミティブを表現できる表現力を持つため、変換はほぼ无损です。TOML 固有の型(複数行文字列、日付)は素の文字列に変換され、JSON 固有の値(null)は JSON リテラル null に変換されます(TOML にはネイティブ対応がありません)。

知っておきたい機能

変換器は整形トグル(2/4 スペースインデント)とコンパクトモード(単一行)を提供します。非常に大きな設定ファイルでは、コンパクト出力の方が curl のリクエストボディに貼り付けやすいです。入れ替えボタンは JSON 出力を入力欄に戻し、再編集してから再び TOML としてエクスポートできます。

使いこなしのヒント

変換後は、ダウンストリームのツールに渡す前にスキーマバリデータ(ajv、jsonschema など)で JSON を検証してください。TOML パーサは厳格で、数字で始まる引用なしのスカラ、コメント付きインラインテーブルなど一般的な誤りを拒否します。エラーメッセージを活用して、JSON ではなく元のドキュメントを修正してください。

自社実装です。TOML は BSD-3 の smol-toml ライブラリ(public/assets に同梱)で解析し、ブラウザ標準の JSON.stringify で JSON を生成します。アップロードは行いません。

よくある質問

変換器は TOML 1.0 の機能をサポートしていますか?
はい。変換器は TOML 1.0 を解析します。テーブル配列([[name]])、インラインテーブル({ key = "value" })、ドットキー(a.b.c)を含みます。
TOML の日付は JSON でどう出力されますか?
時刻部分のない日付は `YYYY-MM-DD` 形式の JSON 文字列になります。日時は `YYYY-MM-DDTHH:MM:SS[.fraction][Z|+offset]` になります。受信側の JSON コンシューマは各言語の日付ライブラリで解析できます。
TOML の複数行文字列はどうなりますか?
改行文字を含む通常の JSON 文字列として出力されます。JSON は正確なリテラルスタイルを保てませんが、解析後の値は同一です。
変換器はドットキーを処理しますか?
はい。`a.b.c = 1` は `{ "a": { "b": { "c": 1 } } }` になります。変換器はすべてのドットキーをネストされたオブジェクトに展開します。
無効な TOML は拒否されますか?
はい。パーサは最初の無効トークンに対し、行/列ポインタ付きのエラーを投げます。元の TOML を修正して再試行してください。
TOML はアップロードされますか?
いいえ。解析は同梱の smol-toml ライブラリでローカルに行われ、ブラウザの外には送信されません。