ToolDeck

TOML to JSON 変換

TOMLをJSON形式に変換

サンプルを試す

TOML 入力

JSON 出力

ローカルで実行 · シークレットの貼り付けも安全
JSON出力がここに表示されます…
こちらもどうぞ:TOML フォーマッター

TOMLからJSONへの変換とは?

TOML(Tom's Obvious Minimal Language)は人間向けに設計された設定ファイルフォーマットです。ハッシュテーブルへの明確なマッピング、ネストされたテーブル、型付きの値、インラインコメントをサポートしています。多くのツールやフレームワークがTOMLをデフォルトの設定フォーマットとして採用しています。RustプロジェクトはCargo.tomlに依存し、PythonパッケージングはpyProject.tomlを使用し、HugoスタティックサイトはConfig.tomlで設定されます。TOMLをJSONにオンラインで変換することで、事実上すべてのプログラミング言語・API・データパイプラインがネイティブに利用できるフォーマットへ設定ファイルを変換できます。

JSON(JavaScript Object Notation)はRFC 8259で定義された、最も広くサポートされているデータ交換フォーマットです。TOMLが最小限の構文とコメントサポートで人間の可読性を重視するのに対し、JSONはマシン間の相互運用性を優先します。TOML to JSONコンバーターは、TOML v1.0.0仕様に従ってTOML入力を解析し、構造的に等価なJSONドキュメントを出力することでこのギャップを埋めます。変換はすべてのデータを保持します。文字列、整数、浮動小数点数、ブール値、配列、テーブルは直接対応するJSONの型にマッピングされます。

TOMLにはJSONで直接表現できない4つのネイティブな日付・時刻型があります:オフセット日時、ローカル日時、ローカル日付、ローカル時刻です。JSONには日付型がないため、変換時にこれらの値はISO 8601文字列としてシリアライズされます。

TOML to JSONコンバーターを使う理由

TOMLで記述された設定ファイルは、JSONのみを受け付けるシステムに渡す必要があることが多くあります。手動でファイルを書き直したり、パーサーライブラリをローカルにインストールしたりする代わりに、ブラウザベースのコンバーターが数秒で変換を処理します。

🔒
プライバシー優先の処理
TOMLデータの解析と変換はすべてブラウザ内で完結します。サーバーへのアップロードは一切ないため、APIキー、データベース認証情報、内部ホスト名を含む設定ファイルも安全に変換できます。
即時変換
TOMLを貼り付けると、すぐに整形されたJSON出力が得られます。1回限りのフォーマット変換のためにNode.jsパッケージ、Pythonライブラリ、CLIツールをインストールする必要はありません。
🔀
TOML v1.0.0 完全対応
ドット付きキー、インラインテーブル、テーブルの配列、複数行文字列、日付・時刻値を含むすべてのTOMLデータ型に対応しています。手動変換でつまずきやすいエッジケースも正しく処理されます。
📋
アカウント不要
ページを開き、TOMLを貼り付け、JSONの結果をコピーするだけです。サインアップ不要、レート制限なし、使用状況のトラッキングもありません。アクセスするたびに同じように動作します。

TOML to JSONのユースケース

フロントエンド開発
Rust WASMプロジェクトのCargo.tomlメタデータをJSONに変換し、JavaScriptビルドスクリプトやpackage.json生成ステップで利用できます。
バックエンドエンジニアリング
TOMLで記述されたアプリケーション設定をJSONに変換し、AWS LambdaEnvironment変数やDockerコンテナラベルなど、JSON設定を必要とする環境に注入できます。
DevOpsとCI/CD
GitHub ActionsやGitLab CIなどのパイプラインツールはJSON入力を扱うことが多くあります。TOMLベースのツール設定(rustfmt.toml、taplo.toml)をJSONに変換して、リントや検証ステップで利用できます。
QAとテスト
TOMLソースファイルからJSONテストフィクスチャを生成できます。TOMLはコメントサポートと読みやすい構文のおかげでテストデータのソースとして管理しやすく、テストハーネスがJSONを期待する場合に変換して使えます。
データエンジニアリング
システム間の設定移行時に、あるプラットフォーム(例:InfluxDB、Telegraf)のTOMLファイルを別のプラットフォームのAPIやインポートツール向けのJSONドキュメントに変換する必要が生じる場合があります。
学習と教育
データフォーマットを学ぶ学生がTOMLの例を貼り付けると、テーブルがネストされたオブジェクトになる様子、テーブルの配列がJSON配列になる仕組み、TOMLの日付型が文字列にマッピングされる方法を具体的に確認できます。

TOML to JSON 型マッピングリファレンス

TOMLのすべての型には対応するJSON等価物があります。ただし日付と時刻の値は例外です。以下の表は各TOML型がJSONにどのように変換されるかを示しています。このマッピングはTOML v1.0.0仕様に従い、tomllib(Python)、toml-rs(Rust)、@iarna/toml(Node.js)などの標準パーサーの動作と一致しています。

TOML構文JSON出力
String"value""value"
Integer4242
Float3.143.14
Booleantrue / falsetrue / false
Offset Date-Time1979-05-27T07:32:00Z"1979-05-27T07:32:00Z"
Local Date-Time1979-05-27T07:32:00"1979-05-27T07:32:00"
Local Date1979-05-27"1979-05-27"
Local Time07:32:00"07:32:00"
Array[1, 2, 3][1, 2, 3]
Table[section]{ "section": {} }
Inline Table{ key = "val" }{ "key": "val" }
Array of Tables[[items]]"items": [{}]

TOML整数は可読性のためにアンダースコア(例:1_000_000)、16進数(0xDEADBEEF)、8進数(0o755)、2進数(0b11010110)リテラルをサポートしています。これらはすべてJSONでは通常の10進数に変換されます。TOMLは無限大とNaNの浮動小数点値もサポートしていますが、これらにはJSON表現がないため、厳格モードでは変換エラーになります。

コード例

4つの言語によるTOMLからJSONへの変換の実例です。それぞれTOMLファイルを読み込み、解析して、整形済みのJSONを出力します。

JavaScript (Node.js)
import { parse } from '@iarna/toml'
import fs from 'fs'

const toml = fs.readFileSync('config.toml', 'utf8')
const json = parse(toml)
console.log(JSON.stringify(json, null, 2))
// Input:  [server]
//         host = "localhost"
//         port = 8080
// Output: { "server": { "host": "localhost", "port": 8080 } }
Python
import tomllib   # Python 3.11+ (standard library)
import json

with open('config.toml', 'rb') as f:
    data = tomllib.load(f)

print(json.dumps(data, indent=2, default=str))
# Dates become strings: "1979-05-27"
# Arrays of tables become JSON arrays of objects
Go
package main

import (
    "encoding/json"
    "fmt"
    "os"

    "github.com/BurntSushi/toml"
)

func main() {
    var data map[string]any
    _, err := toml.DecodeFile("config.toml", &data)
    if err != nil {
        panic(err)
    }
    out, _ := json.MarshalIndent(data, "", "  ")
    fmt.Println(string(out))
}
CLI (yj / dasel)
# Using yj (YAML/JSON/TOML converter)
cat config.toml | yj -tj

# Using dasel
dasel -f config.toml -r toml -w json

# Using Python one-liner (3.11+)
python3 -c "import tomllib, json, sys; print(json.dumps(tomllib.load(sys.stdin.buffer), indent=2, default=str))" < config.toml

よくある質問

変換するとTOMLコメントはどうなりますか?
TOMLコメント(#で始まる行)は変換時に破棄されます。JSONはコメントをサポートしていないため、出力に保持する方法はありません。コメントを残す必要がある場合は、代わりにJSONC(コメント付きJSON)をターゲットフォーマットとして検討してください。
TOML to JSONの変換でデータが失われることはありますか?
標準的なTOMLドキュメントであれば、データは失われません。すべての文字列、数値、ブール値、配列、テーブルには直接対応するJSON型があります。唯一の変換は日付と時刻の値で、JSONではISO 8601文字列になります。2つのエッジケースが問題を起こす可能性があります:TOMLがサポートする無限大とNaNの浮動小数点はJSONで表現できず、非常に大きな整数はJSONパーサーの精度制限(JavaScriptでは2^53 - 1)を超える可能性があります。
TOMLのテーブルの配列はJSONでどのように表現されますか?
TOMLの[[二重ブラケット]]構文はテーブルの配列を定義します。各[[セクション]]ブロックは新しいオブジェクトをJSON配列に追加します。例えば、2つの[[fruits]]ブロックは2つのオブジェクトを持つJSON配列になります:"fruits": [{...}, {...}]。二重ブラケット構文はTOMLの中でも初見では読みにくい部分の1つですが、JSON出力で構造が明確になります。
変換は可逆ですか?JSONからTOMLに戻せますか?
構造的には可能です。すべてのJSONオブジェクトはTOMLテーブルとして表現でき、JSON配列はTOML配列にマッピングされます。ただし、コメント、ドット付きキーのグループ化、インラインテーブルのフォーマットといったTOML固有の機能は、最初のTOML→JSON変換で失われるため、復元できません。ラウンドトリップ変換では有効ながら可読性が低下したTOMLが生成されます。
設定ファイルにおけるTOMLとJSONの違いは何ですか?
TOMLは設定向けに設計されています。コメントをサポートし、ネストされた構造に対してより読みやすい構文を持ち、整数と浮動小数点数を区別し、ネイティブな日付・時刻型を含みます。JSONはプログラム間のデータ交換向けに設計されています。JSONはツールやAPIで広くサポートされていますが、TOMLは人間が読み書きしやすい形式です。多くのプロジェクトでTOMLをソース設定に使用し、デプロイ時にJSONに変換しています。
server.hostのようなドット付きキーはどう処理されますか?
TOMLのドット付きキー(例:server.host = "localhost")はJSONでネストされたオブジェクトを生成します:{"server": {"host": "localhost"}}。これはhostキーを持つ[server]テーブルを定義することと等価です。コンバーターはドット付きキーを自動的に完全なネスト構造に解決します。
TOMLファイルの変換が失敗する場合の原因は?
一般的な原因として、文字列値を囲む引用符の欠落(TOMLでは必須)、複数行基本文字列内のインデントにタブを使用している、重複したキーの定義、同じパスに対してドット付きキーと明示的なテーブルヘッダーを混在させているなどが挙げられます。コンバーターは問題の特定に役立つ行番号付きのパーサーエラーメッセージを表示します。