TOMLからJSONへのコンバーター
なぜTOMLとJSONの間で変換するのか?
TOMLは人間が読みやすい設定ファイル(RustのCargo.toml、PythonのpyProject.toml、HugoのConfig.toml)用に設計されていますが、JSONはWeb APIとJavaScriptツールの標準です。TOML設定をJSON APIに送信したり、JavaScriptツールと統合したり、異なるエコシステム間でデータを共有したりする場合、このツールでギャップを即座に埋められます。
完全な型変換
TOMLの文字列、整数、浮動小数点数、ブール値、日付 — すべてJSONの同等物に正しく変換
テーブルとテーブル配列
[テーブル]、[[テーブル配列]]、インラインテーブル{key = value}構文を正しく処理
フォーマット済みJSON出力
出力は読みやすくインデントされて表示 — 1行の圧縮JSONではない
3ステップでTOMLをJSONに変換する方法
TOML設定を貼り付け
Cargo.toml、pyproject.toml、またはその他のTOML設定ファイルの内容を貼り付け
自動変換
ツールがTOML構造を解析して同等のJSONに即座に変換
JSONをコピー
生成されたJSONをAPIコールやJSONを受け入れる他のツールで使用するためにコピー
TOMLからJSONへの変換のユースケース
Cargo.tomlの解析
依存関係を解析したりバージョン情報を抽出するCIスクリプト用にCargo.tomlをJSONに変換
Hugo設定
他のツールやデータソースとの統合のためにHugoのconfig.tomlをJSONに変換
APIへのデータ送信
TOML形式のパラメーターをREST APIやGraphQLエンドポイントに送信するためにJSONに変換
形式の学習
2つの形式の関係を理解するためにTOML→JSONの構造マッピングを把握
TOMLのベストプラクティス
✓ ネストされたテーブルにはドット記法を使用
TOMLは[server.database]をネストされたテーブルの省略記法としてサポートし、ネストされたJSONキーよりも設定を読みやすくします。
✓ パスにはリテラル文字列を使用
'C:\Users\path'のようなシングルクォートのリテラル文字列はエスケープシーケンスを処理しません — Windowsパスやregexパターンに最適です。
✓ コメントを積極的に使用
JSONに対するTOMLの主なアドバンテージはコメントのサポートです。保守性のためにすべての設定パラメーターを#コメントで文書化してください。
✓ DateTime型変換に注意
TOMLのネイティブRFC 3339日付(2024-01-15T10:30:00Z)はJSONでは文字列になります。JSONを使用するコードはそれらを日付オブジェクトとして再解析する必要があります。
❓ よくある質問
TOMLのYAMLとJSONに対するアドバンテージは何ですか?
TOMLはYAMLより単純(インデントベースの構造なし)、JSONより読みやすく(コメントをサポート)、明示的な型があります(整数、浮動小数点数、日付が別個)。アプリケーション設定ファイルで読みやすさが重要な場合に最適な選択です。
TOMLの[[テーブルの配列]]とは何ですか?
[[servers]]は'servers'という名前のオブジェクト配列を定義します。[[servers]]の各出現が配列に新しいオブジェクトを作成します。以下のキーはそのオブジェクトに属します。JSONの同等物:{"servers": [{...}, {...}]}。
どの主要なツールがTOMLを使用していますか?
Rust(Cargo.toml)、モダンなPythonパッケージング(pip/poetryのpyproject.toml)、Hugoスタティックサイトジェネレーター、Gitea、Lighthouse CI、多くのGoツールがTOMLを使用しています。
TOMLコメントはJSON出力に保存されますか?
いいえ。JSONにはコメント構文がないため、TOMLの#コメントをJSON出力で表現することはできません。コメントが重要な決定を文書化している場合は、別のREADMEに保存するかJSONでは_commentキーを使用してください。