相互変換
ローカル実行 · アップロードゼロ

TOML ⇄ JSON 変換

Rust/Python 設定 · 双方向変換

TOML 変換

準備完了

元の入力

                                
                            
解析出力

                                
固定高さ、長いコードは枠内スクロール

ABOUT

TOML ⇄ JSON 変換について

TOML と JSON 形式間で変換。Rust、Python プロジェクト設定ファイルの編集が容易になります。

Rust Cargo、Python Poetry、Hugo 設定 — TOML は静的型言語とスクリプト言語エコシステムでますます普及。ローカル相互変換で cargo や python -c をインストールせず pyproject.toml 構造を確認できます。

DEEP DIVE

TOML ⇄ JSON 変換を詳しく

TOML(Tom's Obvious Minimal Language)は Rust Cargo、Python Poetry/pyproject.toml、Hugo 設定などのエコシステムで普及。JSON より読み書きしやすいが、JavaScript はネイティブ非対応。JSONSort は TOML ↔ JSON ローカル双方向変換を提供、Python tomllib や Rust toml crate のインストール不要。

変換は表([section])とキー値構造を保持:TOML table は JSON オブジェクト、array of table は JSON オブジェクト配列に対応。Rust/Python プロジェクト設定構造の素早い確認に最適。

TOML table と dotted key は JSON ではいずれもネストオブジェクトにマップ。[[array of tables]] は JSON オブジェクト配列に対応。変換後はツリービューで [dependencies] など section が正しく展開されたか確認、dotted key と table 競合による上書きを回避。

FEATURES

主な機能

01

TOML → JSON

TOML 設定ファイルを JSON オブジェクトに解析。

02

JSON → TOML

JSON から正しい形式の TOML テキストを生成。

03

Table サポート

[section] と [[array of tables]] を正しく処理。

04

型保持

文字列、整数、浮動小数点、ブール、日時を正しくマッピング。

05

ファイルインポート

.toml ファイルのドラッグ&ドロップインポート解析。

06

ローカル変換

Cargo.toml などに私有 crate ソース設定が含まれる可能性があり、ローカルがより安全。

07

日時

TOML offset datetime を ISO 8601 JSON 文字列に変換。

08

整数/浮動小数点

TOML 整数と浮動小数点を区別、JSON で型を正しく保持。

HOW TO USE

使用手順

  1. 1

    TOML または JSON を貼り付け

  2. 2

    変換方向を選択

  3. 3

    結果をコピーしてエクスポート

  4. 4

    変換失敗時はエラー表示を確認し、ソースファイルの構文を修正して再試行

  5. 5

    結果をフォーマットツールで整形、または下流スクリプト用にエクスポート

WORKFLOW

典型的なワークフロー

データインポートから結果エクスポートまでの完全フロー。チームで TOML ⇄ JSON 変換の使い方を統一。

1

TOML をインポート

Cargo.toml / pyproject.toml を貼り付け、またはファイルをドラッグ。

2

JSON を確認

ツリービューで table と array of tables 構造を確認。

3

編集(任意)

JSON 側で修正後 TOML に戻して PR 提出。

4

パイプライン統合

TOML 非対応の内部ツール用に JSON をコピー。

USE CASES

適用シーン

RU

Rust 開発

Cargo.toml を JSON に変換し、ツリービューで依存構造を閲覧。

PY

Python 開発

pyproject.toml を JSON に変換、CI スクリプト読み取りが容易。

DE

DevOps

TOML 設定と JSON 設定管理ツールチェーンを統一。

技術

テクニカルライティング

ドキュメントの TOML 例の横に JSON 同等形式を提供。

RU

Rust エコシステム

Cargo.toml workspace メンバーと features を JSON に変換し CI マトリクス構築。

静的

静的サイト

Hugo config.toml を JSON に変換、headless CMS 設定同期に連携。

TIPS

使用のコツ

  • Cargo.toml 変換後 [dependencies] 下の crate バージョンキーを確認。
  • TOML 日時型は JSON では通常 ISO 8601 文字列に変換。
  • JSON → TOML 時、深いネストオブジェクトは dotted keys または subtable に変換。
  • YAML ツールと比較:Rust エコシステムは TOML、K8s エコシステムは YAML。プロジェクトに応じて選択。
  • 変換失敗時、TOML に重複キーや未閉じ文字列がないか確認。
  • 変換結果をフォーマットツールで整形、Git diff レビューが容易。
  • Cargo workspace.dependencies を JSON に変換後、パス抽出でバージョン確認。
  • JSON → TOML 後、dotted key と [table] を同一階層で混在させない。
  • 変換失敗時、TOML に重複キーや未閉じ文字列がないか確認。
  • YAML ツールと比較:プロジェクトエコシステムに応じてソース形式を選択、JSON を中間橋渡しに。

LOCAL VS ONLINE

ローカル vs オンラインツール

JSONSort は純フロントエンドアーキテクチャを堅持。以下の比較が、開発データ処理にローカルツールが適している理由を示します。

比較項目
JSONSort ローカル
従来のオンラインツール
データプライバシー
完全ローカル、アップロードゼロ
多くはサーバーへのアップロードが必要
応答速度
ミリ秒単位、ネットワーク遅延なし
ネットワークとサーバー負荷の影響を受ける
オフライン利用
PWA オフライン対応
通常は常時オンラインが必要
機密データ
JWT/設定/ログを安心して処理
漏洩リスクあり
広告とトラッキング
広告なし、データトラッキングなし
多くは広告や Analytics を含む
ファイルドラッグ&ドロップ
ローカルファイルの直接インポートに対応
一部ツールはアップロードサイズを制限
ツール連携
19種類のツールを同一ページで切替
通常は各ツールが独立サイト
オープンソースで透明
純静的ページ、ソースコードを監査可能
クローズドソース、サーバー側は監査不可

TROUBLESHOOTING

よくある誤解とトラブルシューティング

実際の使用で起こりやすい問題と推奨対処法。試行錯誤の時間を削減します。

重複キーエラー

推奨:TOML は重複定義不可。dotted key と table 競合を確認。

TOML へ戻すと順序変化

推奨:機能等価。順序依存がある場合は手動調整。

日付形式が不正

推奨:TOML datetime にタイムゾーンがあるか確認。JSON 側は ISO 文字列。

特殊文字キー

推奨:ドット含むキーは引用符で囲む "key.with.dots"。

FAQ

よくある質問

Cargo.toml に対応?

標準 TOML 1.0 構文をサポート。Cargo 固有セマンティクス(workspace など)は構造に従って変換。

JSON から TOML 変換で情報損失は?

JSON で表現可能な構造はすべて TOML に変換可能。TOML コメントは JSON 方向で失われます。

YAML ツールとの違いは?

TOML と YAML は構文が異なります。ソースファイル形式に応じて対応ツールを選択。

inline table に対応?

{ key = "value" } 形式をサポート、JSON ネストオブジェクトに変換。

コメントが失われる場合は?

TOML コメントは JSON に入れられません。.toml ソースファイルをコメント源として保持。

データはサーバーにアップロードされる?

いいえ。JSONSort のすべてのツールはブラウザ内ローカルで動作し、入力内容はバックエンドサーバーに送信されません。

登録やインストールが必要?

不要です。ページを開くだけで使用でき、アカウント不要、クライアントダウンロード不要、PWA オフラインキャッシュにも対応。

どのくらいのファイルサイズに対応?

ブラウザメモリに依存しますが、通常数 MB 級のデータをスムーズに処理できます。超大ファイルは先に分割するかマージ・クリーンツールをご利用ください。

クリップボードにコピーしました