言語選択

JSONをTOMLに変換するオンラインツール

ネストされたJSONをTOMLのテーブルや配列に正確に変換。Rust、Python、Hugoの設定ファイル作成に最適。

Mehmet Demiray 公開日 更新日
共有
整数は小数点付きで記述してください

JSONからTOMLへの変換とは何か

JSONとTOMLはどちらもデータを表現するためのフォーマットですが、用途や可読性の観点で大きく異なります。JSON(JavaScript Object Notation)はAPI通信やデータ交換に広く使われる一方、TOML(Tom's Obvious, Minimal Language)は設定ファイル向けに設計され、人間が読み書きしやすい構文を持ちます。たとえば、Rustのビルドツール「Cargo」やPythonのパッケージ管理ツール「Poetry」では、プロジェクト設定をpyproject.tomlなどのTOMLファイルで記述します。こうしたツールを利用する際、既存のJSON形式の設定をTOMLに変換する必要が生じることがあります。JSONからTOML変換ツールを使えば、手作業での再記述を避け、正確かつ迅速にフォーマットを移行できます。特に、ネストされたオブジェクトや配列を含む複雑な構造でも、TOMLのテーブルやインラインテーブルとして適切にマッピングされます。JSON整形と併用すれば、入力データの品質も保証され、より安全な変換が可能です。

JSONからTOML変換ツールの仕組み

JSONからTOML変換ツールは、まず入力されたJSONをパースし、その構造を解析します。その後、TOMLの文法ルールに従って、各要素を対応するTOML構文に変換します。たとえば、JSONのオブジェクトはTOMLのテーブル([table])またはインラインテーブル({ key = value })として出力され、配列はTOMLの配列表現に変換されます。日時型の値(例:"2024-12-12T09:00:00Z")は、TOMLがサポートするRFC 3339準拠の日時フォーマットとして保持されます。ただし、JSONには型情報が含まれないため、数値と文字列の区別が曖昧になるケースがあります。このツールでは、可能な限り元の意図を尊重しつつ、TOMLの厳密な型システムに適合させる処理を行います。特殊文字(例:改行、タブ、Unicodeエスケープ)も適切に処理され、TOMLの文字列リテラル規則に準拠した形で出力されます。変換結果が有効なTOMLであることを確認するために、内部でバリデーションも実施しています。

よくある利用シーン

JSONからTOML変換ツールは、さまざまな開発タスクで活用できます。たとえば、Web APIから取得したJSONレスポンスを、ローカルの設定ファイルとしてTOML形式で保存したい場合があります。これは、静的サイトジェネレーター「Hugo」のサイト設定や、Rust製CLIツールの初期設定生成などに役立ちます。また、既存のNode.jsプロジェクトで管理されていた設定を、RustやGo製の新システムに移行する際、JSONからTOMLへの変換により設定ファイルの再作成コストを大幅に削減できます。さらに、CI/CDパイプライン内で動的に生成されたJSONデータを、後続のTOMLベースのツールチェーンに渡すような自動化フローにも最適です。日本国内の開発現場でも、Pythonのpyproject.tomlによる依存関係管理が普及しており、requirements.jsonのような中間フォーマットからの変換ニーズが高まっています。このようなケースでは、手動での再記述ではなく、信頼性の高い変換ツールの利用が推奨されます。

入れ子構造や特殊文字の扱い

JSONからTOML変換ツールは、深い階層の入れ子構造も正しく処理します。たとえば、{"database": {"connection": {"host": "localhost", "port": 5432 number}}}のようなJSONは、TOMLでは[database.connection]テーブルとして展開され、配列はport = [5432]のように表現されます。配列内のオブジェクトが複数存在する場合は、「配列のテーブル」([[array_of_tables]])として出力され、TOMLの標準仕様に完全に準拠します。特殊文字については、JSONのエスケープシーケンス(例:\n, \t, \u3042)をTOMLの文字列リテラル規則に従って再エンコードします。TOMLではベーシック文字列(ダブルクォート)とリテラル文字列(シングルクォート)の両方をサポートしており、改行やバックスラッシュを含む値は、必要に応じて適切な形式で出力されます。これにより、変換後のTOMLファイルはそのまま各種ツールで読み込める状態になります。

変換は完全に可逆か?

JSONからTOMLへの変換は、必ずしも完全に可逆(lossless)ではありません。主な理由は、JSONとTOMLのデータモデルの違いにあります。たとえば、JSONではオブジェクトのキー順序は保証されませんが、TOMLでは記述順が意味を持つことがあります。また、JSONのnull値はTOMLに直接対応する型が存在しないため、通常は出力から除外されます。さらに、JSONの数値はすべて浮動小数点として扱われがちですが、TOMLでは整数と浮動小数点数が明確に区別されるため、変換時に意図しない型変換が発生する可能性があります。ただし、一般的な設定ファイル用途では、これらの差異が実用上問題になることは稀です。逆方向の変換が必要な場合は、TOMLからJSON変換ツールを併用することで、ワークフロー全体の整合性を保つことができます。重要なのは、変換後のデータを必ず検証し、目的のシステムで正しく動作することを確認することです。

JSONからTOMLへ変換する方法

JSONからTOML変換ツールを使うには、まず変換したいJSONデータを準備します。これは、ファイルから読み込むか、クリップボード経由でペーストするか、直接テキストエリアに入力するかのいずれかです。入力データは有効なJSONである必要があります。無効なJSONの場合、JSON整形機能を使って構文エラーを修正してから再試行してください。データを入力したら、「変換」ボタンをクリックします。ツールは内部でJSONをパースし、TOMLの構文ルールに基づいて変換を実行します。変換が成功すると、結果がテキストエリアに表示され、コピーまたはダウンロードが可能になります。出力されたTOMLは、RustのCargo.tomlやPythonのpyproject.tomlなど、各種TOML対応ツールでそのまま利用できます。大規模なデータや複雑な構造の場合でも、ブラウザ上で高速に処理され、ネットワーク通信を介さないためセキュリティ面でも安心です。必要に応じて、JSONからYAML変換との併用も検討できます。

最もよくいただく質問

JSONからTOML変換ツールの使い方は?

JSONデータをテキストエリアに貼り付けるか、ファイルをアップロードするだけで、自動的にTOML形式に変換されます。変換後は結果をコピーしたり、ダウンロードしたりできます。詳細な手順はJSON整形ツールの使い方も参考にしてください。

JSONとTOMLの主な違いは何ですか?

JSONは厳密な構文を持つデータ交換フォーマットで、オブジェクトや配列を{}や[]で囲みます。一方、TOMLは人間が読み書きしやすい設定ファイルフォーマットで、セクション(テーブル)やキー・バリューの形を取ります。たとえば、ネストされたオブジェクトはTOMLでは[テーブル名]という表記になります。

入れ子になったJSONオブジェクトは正しく変換されますか?

はい。JSONの入れ子構造は、TOMLのテーブルまたはインラインテーブルとして適切に変換されます。ただし、非常に深い階層や特殊なキー名(例:空白や記号を含む)は、TOMLの仕様上エスケープが必要になる場合があります。

変換は完全に可逆(lossless)ですか?

いいえ。JSONからTOMLへの変換は情報が失われる可能性があります。たとえば、JSONのnull値や特定の数値型(整数/浮動小数点の区別)はTOMLで直接表現できないため、近似的な扱いになります。逆変換が必要な場合はTOMLからJSON変換ツールもご活用ください。

pyproject.tomlやCargo.tomlのような設定ファイル作成に使えますか?

はい。PythonのPoetryやRustのCargoで使う設定ファイルはTOML形式のため、このツールでJSONベースの設定を簡単に移行できます。ただし、最終的には手動で仕様に合うよう調整することを推奨します。

特殊文字やUnicodeを含むJSONも変換可能ですか?

はい。UTF-8エンコーディングに基づき、日本語を含むUnicode文字はそのままTOMLに出力されます。ただし、TOMLのキー名に使用できる文字には制限があるため、変換時に自動的に引用符で囲まれる場合があります。

他のフォーマット(YAMLなど)にも変換できますか?

このツールはJSONからTOML専用ですが、JSONをYAMLに変換したい場合はJSONからYAML変換ツールをご利用ください。用途に応じて最適なフォーマットを選べます。