言語選択

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

ネストされたテーブル、配列、日時値を含むTOMLを正確にJSONに変換。コメントもメタデータとして保持。

Mehmet Demiray 公開日 更新日
共有
JSON出力のフォーマットに使用するインデント幅

TOMLをJSONに変換とは何か

TOML(Tom's Obvious, Minimal Language)とJSON(JavaScript Object Notation)は、どちらもデータの保存や交換に広く使われるフォーマットですが、用途や構文に明確な違いがあります。TOMLは設定ファイル向けに設計されており、人間が読み書きしやすい構造を持ちます。一方、JSONはプログラムによる処理に適しており、多くのAPIやWebアプリケーションで標準的に利用されています。「TOMLをJSONに変換」は、これらのフォーマット間でデータを移行・統合する際に役立つツールです。たとえば、Rustのプロジェクト設定ファイルであるCargo.tomlやPythonのpyproject.tomlをCI/CDパイプラインで処理したい場合、JSON形式に変換することでスクリプトによる解析が容易になります。特に、コメントを含むTOMLファイルをJSONに変換する際には、元の意図を可能な限り維持しつつ、機械可読性を確保することが重要です。

TOMLからJSONへの変換の仕組み

「TOMLをJSONに変換」ツールは、まず入力されたTOMLテキストを厳密にパースします。この過程で、テーブル(セクション)、配列、日時型、マルチライン文字列などのTOML特有の要素を識別します。その後、これらをJSONのオブジェクト、配列、文字列などに対応する構造にマッピングします。たとえば、TOMLの[database]というテーブルは、JSONでは{"database": { ... }}のようなネストされたオブジェクトになります。特殊なケースとして、TOMLの日時型(例: 2024-05-01T12:00:00Z)は、JSONでは文字列として出力されます。また、TOMLのコメントはJSON標準ではサポートされませんが、このツールではメタデータとして保持可能な形式で出力することもあります。ただし、すべての情報が完全に保持されるとは限らないため、変換後の検証が必要です。より複雑な変換については逆変換ツールもご参照ください。

TOMLをJSONに変換する主なユースケース

「TOMLをJSONに変換」は、開発ワークフローの中で多様な場面で活用できます。1つ目のユースケースは、APIのレスポンス処理です。一部のマイクロサービスがTOML形式で設定を返す場合、フロントエンドや他のサービスがJSONを期待していると、即座に変換が必要になります。2つ目は、設定ファイルの移行です。たとえば、Hugoなどの静的サイトジェネレータで使用されるconfig.tomlを、Node.jsベースのビルドスクリプトで扱うためにJSONに変換するケースがあります。3つ目は、CI/CDパイプラインにおけるデータ連携です。GitHub ActionsやGitLab CIでpyproject.tomlのバージョン情報を読み取り、それをJSON形式でレポート生成ツールに渡すといった使い方が可能です。このような変換により、異なる技術スタック間でのデータの橋渡しがスムーズになります。同様のニーズがある場合はYAML変換ツールも併せて検討すると良いでしょう。

TOMLとJSONの主な違い

TOMLとJSONはどちらもデータシリアル化フォーマットですが、設計思想と構文に大きな違いがあります。TOMLは人間が編集しやすいことを重視しており、セクション(テーブル)による階層構造や、コメントの記述が可能です。たとえば、# データベース接続設定のように注釈を直接書けます。一方、JSONは機械処理を前提としており、コメントをサポートせず、すべてのキーを二重引用符で囲む必要があります。また、TOMLでは日付時刻をネイティブに表現できますが(例: due_date = 2024-12-31T23:59:59+09:00)、JSONではそれが文字列になります。さらに、TOMLの配列は柔軟な構文を持ちますが、JSONの配列は厳密に[...]で囲まれた形式のみです。これらの違いにより、TOMLからJSONへの変換は単純な置換ではなく、意味を保ちつつ構造を再構成するプロセスとなります。変換後にデータを整形したい場合はJSON Formatterの利用がおすすめです。

ネスト構造や特殊文字の変換について

「TOMLをJSONに変換」ツールは、複雑なネスト構造や特殊文字を含むTOMLファイルにも対応しています。たとえば、TOMLの配列テーブル([[products]])は、JSONではオブジェクトの配列として正確に再現されます。また、日本語を含むマルチバイト文字やUnicodeエスケープシーケンス(例: \u3042)も正しく処理され、JSON出力に反映されます。ただし、TOMLのリテラル文字列(シングルクォートで囲まれたもの)内の改行や制御文字は、JSONの文字列ルールに従ってエスケープされる必要があります。このため、変換後には元の見た目が若干変わる場合がありますが、データ内容は保持されます。注意点として、TOMLの動的型(例: 整数と浮動小数点数の自動判別)はJSONでも適切にマッピングされますが、非常に大きな数値は精度の関係で文字列として扱われることがあります。変換結果を確認する際は、必ず内容を検証してください。

TOMLからJSONへの変換は完全に可逆か

「TOMLをJSONに変換」は、多くのケースでデータの意味を損なわずに変換を行いますが、完全に可逆(lossless)とは限りません。最大の理由は、JSONがコメントをサポートしていないことです。TOMLファイルに含まれるコメントは、変換時に失われるか、特別なメタフィールドとして保存される場合がありますが、標準的なJSONとしては保持されません。また、TOMLの日時型や整数型などの型情報は、JSONではすべて文字列または数値として一般化されるため、元の型を厳密に復元することはできません。さらに、TOMLのインラインテーブルや等価キーの扱いも、JSONの制約により標準化されます。したがって、設定ファイルを一時的にJSONに変換して処理した後、再度TOMLに戻す必要がある場合は、JSON to TOML Converterを使用しても、元のファイルと完全に同一にはならない可能性があります。重要なプロジェクトでは、変換前後の差分を確認することを推奨します。

最もよくいただく質問

TOMLをJSONに変換するにはどうすればいいですか?

「TOMLをJSONに変換」ツールに、変換したいTOML形式のテキストを貼り付けるだけで自動的にJSONに変換されます。入力欄にTOMLを記述し、「変換」ボタンを押すと、結果がすぐに表示されます。JSONの整形も同時に行えるため、出力結果をそのままコードに組み込めます。

TOMLとJSONでは何が違うんですか?

TOMLは設定ファイル向けに設計されており、コメントや日時型、明確な階層構造を直感的に記述できます。一方、JSONはデータ交換向けで、コメントが使えず文字列以外の型(例:日時)は文字列として扱われます。「TOMLをJSONに変換」では、TOMLの構造を可能な限り忠実にJSONにマッピングしますが、コメントはメタデータとしてのみ保持されます。

入れ子になったテーブルや配列は正しく変換されますか?

はい。TOMLのテーブル([section])、インラインテーブル({ key = value })、テーブルの配列([[array]])など、複雑な構造も正確にJSONオブジェクトおよび配列に変換されます。ただし、TOML固有の機能(例:日時のネイティブ型)はJSONの仕様上、文字列として出力される点にご注意ください。

変換は完全に可逆ですか?元のTOMLに戻せますか?

いいえ。JSONにはコメントや一部の型情報(例:日時型)が含まれないため、変換は損失があります。元のTOMLを完全に再現することはできません。逆変換が必要な場合は、JSON to TOML変換ツールをご利用ください。ただし、元のTOMLにあったコメントやフォーマットは復元されません。

Cargo.tomlやpyproject.tomlのような実際の設定ファイルも変換できますか?

はい。RustのCargo.tomlやPythonのpyproject.toml、Hugoの設定ファイルなど、実際のプロジェクトで使われるTOMLファイルも問題なく変換可能です。CI/CDパイプラインやスクリプト処理でJSON形式が必要な場合に便利です。変換後はJSON整形ツールで整形して読みやすくすることもおすすめです。

特殊文字やマルチバイト文字(日本語など)を含むTOMLも大丈夫ですか?

はい。UTF-8でエンコードされた日本語を含む任意のUnicode文字は、JSONの仕様に準拠して正しくエスケープまたはそのまま出力されます。特に追加設定は不要で、コピペするだけで安全に変換できます。