JSON → TOML

JSON ドキュメントを TOML に変換し、インデントと美化を切り替えられます。

JSON ドキュメントを TOML に変換し、インデントと美化を切り替えられます。 JSON ドキュメントを TOML に変換し、インデントと美化を切り替えられます。

出力

背景

なぜ JSON を TOML に変換するのか

JSON はネットワーク上で遍在していますが、最近の設定ファイル(Cargo、pyproject.toml、GitHub Actions、uv など)は実際には TOML を使っています。API から JSON の断片を設定ファイルにコピーするとき、通常は手で構文を翻訳する必要があります。中括弧はセクションに、角括弧は配列に、カンマは改行に、引用符付きキーは裸キーになります。

変換器はその翻訳を自動化します。API レスポンスを貼り付け、TOML 出力をコピーするだけで完了です。

知っておきたい機能

ほとんどの変換器は既定で JSON オブジェクトの順序を保持します。TOML はセクションを並べ替えられるため、実行間で安定した差分を取りたいときは「キーを並べ替え」オプションが便利です。インデント制御によりプロジェクトのスタイルガイド(2 スペースまたは 4 スペース)に合わせられます。

TOML のテーブル配列については、JSON 配列が単一の統一オブジェクトを含む場合はインライン形 key = [ ... ] を、型が混在している場合や同じスキーマを繰り返す場合はヘッダ形 [[section]] を出力します。これが完全に機械的に変換できない唯一のケースです。

使いこなしのヒント

TOML をコミットする前に、JSON で使ったキーがすべて TOML の裸キーとして有効か確認してください(空白なし、先頭が数字禁止、先頭のハイフン禁止)。変換器は名前をそのまま保持し、名前変更は行いません。変換後はエディタに貼り付け、プロジェクトのリンタを実行して、変換器が把握していないスタイルの問題を検出してください。

自社実装です。JSON はブラウザ標準の JSON.parse で読み取り、出力は BSD-3 の smol-toml ライブラリ(public/assets に同梱)で生成します。データがサーバに送信されることはありません。

よくある質問

変換器はネストされたオブジェクトに対応していますか?
はい。ネストされた JSON オブジェクトはネストされた TOML テーブルになります。変換器は階層を保持し、非常に深い階層は対応する [[section.sub]] ヘッダへ展開されます。
プリミティブの配列はどうなりますか?
プリミティブ(数値、文字列、真偽値)の配列は TOML のインライン配列になります。TOML は配列の同質性を要求するため、型が混在する配列は基盤のパーサに拒否されます。
JSON の null 値は保持されますか?
TOML には null リテラルがありません。変換器は null を破棄して警告を出力します。欠落を記録したい場合は、変換前に空文字列かセンチネル値を使ってください。
出力に元の JSON のコメントがないのはなぜですか?
JSON はコメントをサポートしません。TOML にコメントが必要であれば、変換後に手動で追加してください。
変換器はキーの順序を変更しますか?
いいえ。デフォルトでは JSON の順序で出力されます。差分用に安定したアルファベット順が必要なら並べ替えオプションを有効にしてください。
JSON はどこかに送信されますか?
いいえ。変換はブラウザ内で完結し、ネイティブの JSON.parse と同梱の smol-toml ライブラリのみを使用します。