Skip to content

TOML → JSON 変換ツール

TOML を貼り付けると、ブラウザ内で即座に JSON に変換します。Cargo.toml・pyproject.toml・config.toml に対応。日付やネストされたテーブルも正確に処理。完全プライベート、アップロード不要。

トラッキングなし ブラウザで動作 無料
オプション · 2 スペース
インデント
0 文字
JSON 出力
0
TOML 1.0.0 仕様準拠、日時の忠実さ、安全な大きな整数の処理についてレビュー済み — Go Tools エンジニアリングチーム · Jul 2, 2026

TOML とは何で、なぜ JSON に変換するのか?

TOML(Tom's Obvious, Minimal Language)は、曖昧さがなく、人間が読みやすく、ハッシュテーブルへ簡単にマッピングできるように Tom Preston-Werner によって作られた設定ファイル形式です。Rust エコシステム(Cargo.toml)、モダンな Python パッケージング(pyproject.toml、PEP 518 と PEP 621 で標準化)、そして Hugo、Netlify、Poetry、Foundry といったツールで既定の設定形式になっています。対照的に JSON は普遍的な機械間交換形式で — あらゆる言語がそれを解析し、あらゆる API がそれを話します。したがって TOML を JSON に変換することはよくある作業です: 読みやすい TOML で設定を書き、JSON に変換してプログラムに渡したり、JSON ツールで調べたり、パイプラインで差分比較したりします。

このツールには、正確さの点で重要ないくつかの差別化要因があります:

**1. 日時の忠実さ。** TOML には JSON に完全に欠けている一級の日付・時刻型 — オフセット日時、ローカル日時、ローカル日付、ローカル時刻 — があります。素朴な変換ツールはそれらすべてを ISO タイムスタンプに平坦化してしまうため、1979-05-27 のようなローカル日付が 1979-05-27T00:00:00Z になり、時刻とタイムゾーンをこっそり捏造します。このツールは TOML の正確な種別を保持します: ローカル日付はカレンダー日付のまま、ローカル時刻は時刻のまま、オフセット日時だけがタイムゾーンを持ちます。これでデータが正直に保たれ、往復変換でも情報が失われません。

**2. 完全な TOML 1.0.0 サポート。** ネストされたテーブル、ドット付きキー、インラインテーブル、テーブルの配列([[section]])はすべて、ゼロ依存の smol-toml ライブラリを使って TOML 1.0.0 仕様どおりに正しく解析されます。インラインテーブルと標準テーブルが混在した実際の Cargo.toml や pyproject.toml ファイルも、仕様が要求するとおり正確に変換されます。

**3. 正直な大きな整数の処理。** TOML の整数は 64 ビットですが、ブラウザ JavaScript は 2^53 - 1 までの整数しか正確に保持できません。大きな値をこっそり壊したりクラッシュしたりする代わりに、このツールは最も近い JSON 数値に変換して警告します。そのため、代わりに値を文字列として保存するかを選べます。ブラウザの根本的な制限についてのこの正直さは、ほとんどの変換ツールが見過ごしている点です。

**4. 100% ブラウザベースのプライバシー。** あなたの TOML — レジストリトークン、内部パッケージソース、デプロイシークレットを含むかもしれません — がブラウザから外に出ることはありません。アップロードなし、サーバーなし、ログなし。ブラウザのネットワークタブで確認できます。

逆方向が必要ですか?JSON → TOML 変換ツール を使ってください。他の設定形式を変換していますか?JSON → YAML 変換ツールYAML → JSON 変換ツール を試すか、まず JSON フォーマッター で JSON 出力を検証・整形してください。TOML、JSON、YAML にはそれぞれ役割があります: 人間が編集するアプリ設定には TOML、機械間交換には JSON、深くネストされたインフラのマニフェストには YAML。この変換ツールを使えば、コードを 1 行も書かずに前者 2 つの間を移動できます。

// Convert TOML to JSON in Node.js using the smol-toml library
import { parse } from 'smol-toml';

const toml = `
[package]
name = "my-app"
version = "1.0.0"

[dependencies]
serde = { version = "1.0", features = ["derive"] }
`;

const data = parse(toml);
const json = JSON.stringify(data, null, 2);

console.log(json);
// {
//   "package": { "name": "my-app", "version": "1.0.0" },
//   "dependencies": {
//     "serde": { "version": "1.0", "features": ["derive"] }
//   }
// }

主な機能

ライブ変換

TOML を入力または貼り付けるたびに JSON 出力が即座に更新されます — 「変換」ボタンは不要です。大きな入力(>200KB)は自動的に手動モードに切り替わり、ブラウザの応答性を保ちます。

日時の忠実さ

TOML のオフセット日時、ローカル日時、ローカル日付、ローカル時刻は、元の種別を保持する JSON 文字列に変換されます — 捏造された午前 0 時のタイムスタンプはなく、往復変換でも情報が失われません。

完全な TOML 1.0.0 サポート

ネストされたテーブル、ドット付きキー、インラインテーブル、テーブルの配列([[section]])はすべて、ゼロ依存の smol-toml エンジンで TOML 1.0.0 仕様に合わせて正しく解析されます。

Cargo.toml・pyproject.toml 対応

実世界で最も一般的な TOML ファイル — Rust のマニフェストと Python のパッケージング設定 — 向けに最適化されており、インラインテーブルとテーブルの配列を含みます。例を読み込んで、生成される正確な JSON 構造を確認できます。

正直な大きな整数の警告

JavaScript の安全な範囲(2^53)を超える整数は JSON で正確に表現できません — ツールはそれらを最も近い数値に変換して警告し、値をこっそり壊すことはありません。

100% ブラウザベースのプライバシー

すべての解析はブラウザ内でローカルに実行されます。あなたの TOML — レジストリトークン、プライベートパッケージソース、デプロイシークレットを含む — がアップロード・保存・記録されることはありません。

Cargo.toml(Rust)

[package]
name = "my-app"
version = "1.0.0"
edition = "2021"
authors = ["Jane Doe <jane@example.com>"]

[dependencies]
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }

[dev-dependencies]
criterion = "0.5"

[[bin]]
name = "my-app"
path = "src/main.rs"

Rust の Cargo.toml マニフェストを JSON に変換します。ツール連携、依存関係ダッシュボード、または cargo メタデータを JSON 前提のスクリプトに渡す用途に便利です。

pyproject.toml(Python)

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "my-package"
version = "0.3.1"
requires-python = ">=3.10"
dependencies = [
  "requests>=2.31",
  "pydantic>=2.0"
]

[project.optional-dependencies]
dev = ["pytest>=8.0", "ruff>=0.4"]

[tool.ruff]
line-length = 100

PEP 621 準拠の pyproject.toml を JSON に変換し、プロジェクトのメタデータ・依存関係・ツール設定をプログラムから調べられるようにします。

netlify.toml

[build]
command = "npm run build"
publish = "dist"

[build.environment]
NODE_VERSION = "20"

[[redirects]]
from = "/old-path"
to = "/new-path"
status = 301
force = true

[[headers]]
for = "/*"

[headers.values]
X-Frame-Options = "DENY"

Netlify のビルド設定を JSON に変換し、リダイレクトやヘッダーを検証したり、別プラットフォーム向けの同等設定を生成したりします。

Hugo config.toml

baseURL = "https://example.org"
languageCode = "en-us"
title = "My Hugo Site"
theme = "ananke"

[params]
description = "A static site built with Hugo"
mainSections = ["posts", "docs"]

[[menu.main]]
name = "Blog"
url = "/posts/"
weight = 1

[[menu.main]]
name = "About"
url = "/about/"
weight = 2

Hugo サイトの config.toml を JSON に変換し、設定の移行、構成の差分比較、または設定 UI の駆動に使います。

rustfmt.toml

edition = "2021"
max_width = 100
hard_tabs = false
tab_spaces = 4
newline_style = "Unix"
use_small_heuristics = "Default"
reorder_imports = true
reorder_modules = true

フラットな rustfmt.toml を JSON に変換します。トップレベルのキー・値ペア(テーブルなし)が JSON オブジェクトに直接マッピングされる好例です。

日付とテーブルの配列を含むアプリ設定

title = "Deployment Log"
last_deployed = 1979-05-27T07:32:00Z
release_date = 1979-05-27
maintenance_window = 02:00:00

[[servers]]
name = "alpha"
ip = "10.0.0.1"
ports = [8001, 8002]

[[servers]]
name = "beta"
ip = "10.0.0.2"
ports = [9001]

TOML ネイティブの日時(オフセット日時、ローカル日付、ローカル時刻)とテーブルの配列が、JSON の文字列と配列にきれいに変換される様子を示します。

使い方

  1. 1

    TOML を貼り付ける

    上の入力欄に TOML を入力または貼り付けます。「例を読み込む」をクリックして、実際の Cargo.toml、pyproject.toml、またはデプロイ設定を試すこともできます。

  2. 2

    ライブ JSON 出力を見る

    JSON が出力パネルに即座に表示されます。インデントオプション(2 または 4 スペース)を対象の形式に合わせて調整します。日付、テーブル、テーブルの配列は自動的に処理されます。

  3. 3

    コピーまたはダウンロード

    「コピー」をクリックして JSON をクリップボードに取得するか、「ダウンロード」をクリックして、プログラム・API・ツール連携にすぐ使える .json ファイルとして保存します。

TOML でよくある落とし穴

引用符なしの文字列値

TOML では文字列値は引用符で囲む必要があります。等号の右側の裸の語が有効なのは、真偽値(true/false)、数値、日付、または配列の一部の場合だけです。文字列は二重引用符または単一引用符で囲んでください。

✗ 誤り
name = my-app
✓ 正しい
name = "my-app"

重複キー

TOML は同じテーブル内で同じキーを 2 回定義することを禁止し、すでに定義されたテーブルを再定義することも禁止します。これは設定の断片をマージするときによくあるエラーです。各キーとテーブルは一意でなければなりません。

✗ 誤り
name = "a"
name = "b"
✓ 正しい
name = "a"
alt_name = "b"

無効な日時形式

TOML の日時は RFC 3339 に従います。日付には 4 桁の年、2 桁の月、2 桁の日が必要で、日時には T(またはスペース)の区切りが必要です。不正な形式の日付は解析に失敗します。

✗ 誤り
released = 2026-7-2
✓ 正しい
released = 2026-07-02

閉じ括弧の欠落

配列、インラインテーブル、テーブルヘッダーは閉じる必要があります。閉じられていない [ や { は、問題が検出された行と列を指す解析エラーを生成します。

✗ 誤り
ports = [8001, 8002
✓ 正しい
ports = [8001, 8002]

安全な範囲を超える整数

TOML の整数は 64 ビットですが、ブラウザの JSON 数値は 2^53 - 1 に制限されています。それを超える値は変換中に丸められ、警告が表示されます。非常に大きな整数は引用符付きの文字列として保存し、正確に保ってください。

✗ 誤り
snowflake = 1420070400000000000
✓ 正しい
snowflake = "1420070400000000000"

テーブルの再定義

[servers] のようなテーブルを一度定義すると、同じヘッダーで再び開くことはできません。複数のエントリを持たせるには、代わりにテーブルの配列([[servers]])を使ってください。これはオブジェクトの JSON 配列になります。

✗ 誤り
[servers]
name = "a"
[servers]
name = "b"
✓ 正しい
[[servers]]
name = "a"
[[servers]]
name = "b"

よくある使用例

Rust Cargo のメタデータ
Cargo.toml を JSON に変換して、依存関係ダッシュボードを構築したり、クレートのバージョンや機能を監査したり、TOML ではなく JSON を前提とするスクリプトや CI にマニフェストデータを渡したりします。
Python プロジェクト設定
pyproject.toml を JSON に変換して、PEP 621 のプロジェクトメタデータを調べたり、依存関係リストを抽出したり、パッケージング設定をプログラムから読むツールを駆動したりします。
デプロイ設定の検査
netlify.toml、foundry.toml、その他のプラットフォーム設定を JSON に変換して、リダイレクト・ヘッダー・ビルド設定を監査したり、別プラットフォーム向けの同等設定を生成したりします。
設定形式の移行
JSON を好むシステムへ移行するときに TOML アプリ設定を JSON に変換したり、jq のような JSON ツールでさらに変換する前の中間ステップとして使ったりします。
静的サイトの設定
Hugo の config.toml を JSON に変換して、サイト設定を移行したり、環境間で構成を差分比較したり、JSON を裏側に持つ設定 UI を構築したりします。
API とスクリプトの入力
人間が書いた TOML を、REST API・サーバーレス関数・自動化スクリプトが直接消費できる JSON に変換し、読みやすい設定と機械入力を橋渡しします。

技術的な詳細

smol-toml による TOML 1.0.0 解析
TOML はゼロ依存で完全に TOML 1.0.0 準拠のパーサーである smol-toml ライブラリで解析されます。ネストされたテーブル、ドット付きキー、インラインテーブル、テーブルの配列、複数行文字列、および 4 種類すべての日時型を正しく処理し、解析エラーを行と列の位置とともに報告します。
損失のない日時と安全な整数の処理
TOML の日時は、正確な種別(オフセット日時、ローカル日時、ローカル日付、ローカル時刻)を保持する JSON 文字列にシリアライズされます。JavaScript の安全な範囲(2^53 - 1)を超える整数は解析中に BigInt に昇格され、その後、精度警告とともに最も近い JSON 数値に変換されるため、有効な TOML の変換が失敗することはありません。
100% ブラウザベース — アップロードなし、サーバーなし
すべての処理はブラウザの JavaScript エンジン内で行われます。いかなる時点でもデータは送信されません。200KB を超える入力はライブから手動モード(明示的な「変換」クリック)に切り替わり、インターフェースの応答性を保ちます。

ベストプラクティス

非常に大きな整数は文字列として保存する
TOML に 2^53 - 1 を超える整数(Snowflake ID、ナノ秒タイムスタンプ、大きなカウンター)がある場合は、変換前に引用符で囲んで文字列にしてください。ブラウザの JSON 数値ではそれらを正確に保持できず、丸めが必要になるとツールが警告します。
JSON 出力には 2 スペースインデントを推奨
2 スペースのインデントは JSON で最も広く使われる慣習で、ほとんどのフォーマッターや差分ツールとうまく調和する、きれいで読みやすい出力を生みます。4 スペースインデントはスタイルガイドが要求する場合のために取っておきましょう。
使う前に JSON 出力を検証する
変換後、JSON を手で編集したり、厳格な場所に渡したりする予定なら、JSON フォーマッター に通して、有効で一貫した形式であることを確認してください。
TOML のコメントは別に保管する
JSON にはコメント構文がないため、TOML の # コメントは変換時に失われます。コメントが重要なドキュメントである場合は、生成された JSON の隣に元の TOML をバージョン管理に保管してください。
繰り返しセクションにはテーブルの配列を使う
似たセクション(servers、redirects、bins)が複数ある場合は、[section] を繰り返すのではなく、テーブルの配列([[section]])として書いてください。重複テーブルエラーを引き起こす代わりに、きれいなオブジェクトの JSON 配列に変換されます。

よくある質問

オンラインで TOML を JSON に変換するには?
上の入力欄に TOML を貼り付けてください。ツールがそれを解析し、ブラウザ内で即座に JSON を生成します — ボタンのクリックは不要です。オプションパネルで JSON のインデントを 2 スペースと 4 スペースの間で切り替えられます。出力エリアに JSON が表示されたら、「コピー」をクリックしてクリップボードに取得するか、「ダウンロード」をクリックして .json ファイルとして保存できます。すべてローカルで動作するため、TOML がお使いのデバイスから外に出ることはありません。
TOML とは何で、なぜ JSON に変換するのですか?
TOML(Tom's Obvious, Minimal Language)は、人間が読み書きしやすいように設計された設定ファイル形式で、ハッシュテーブルに曖昧さなくマッピングできる明確な意味論を持ちます。Rust の Cargo.toml、Python の pyproject.toml、Hugo、Netlify など多くのツールを支えています。TOML を JSON に変換するのは、JSON を前提とするプログラムや API に設定を渡したいとき、設定ファイルをプログラムから調べたいとき、JSON ツールで 2 つの構成を差分比較したいとき、または UI を駆動したいときです。TOML は人間が書き、JSON は機械が消費します — この変換ツールが両者を橋渡しします。
TOML の日付と時刻は JSON でどう表現されますか?
JSON にはネイティブの日付型がないため、TOML の日時は文字列に変換されます。このツールは TOML の正確な日付種別を保持します。1979-05-27T07:32:00Z のようなオフセット日時は "1979-05-27T07:32:00.000Z" になり、1979-05-27 のようなローカル日付は "1979-05-27" のまま(完全なタイムスタンプに水増しされません)、07:32:00 のようなローカル時刻は "07:32:00.000" になります。多くの変換ツールはローカル日付を誤って UTC の午前 0 時のタイムスタンプに平坦化してしまいますが、このツールは元の意味を保つため、往復変換でも情報が失われません。
このツールは Cargo.toml と pyproject.toml に対応していますか?
はい。Cargo.toml と pyproject.toml は実世界で最も一般的な 2 つの TOML ファイルで、どちらも完全にサポートしています。ネストされたテーブル([dependencies]、[tool.ruff])、インラインテーブル(serde = { version = "1.0", features = ["derive"] })、テーブルの配列([[bin]])を含みます。上の Cargo.toml または pyproject.toml の例を読み込むと、生成される正確な JSON 構造を確認できます。ビルドダッシュボード、依存関係の監査、またはプロジェクトのメタデータを JSON として読むあらゆるスクリプトに便利です。
TOML のテーブルとテーブルの配列はどう変換されますか?
[owner] のような TOML のテーブルヘッダーは、キー "owner" の下のネストされた JSON オブジェクトになります。[tool.ruff] のようなドット付きテーブルはネストされたオブジェクトになります: { "tool": { "ruff": { ... } } }。二重角括弧で書かれたテーブルの配列 — [[servers]] を繰り返したもの — はオブジェクトの JSON 配列になります: { "servers": [ { ... }, { ... } ] }。インラインテーブル({ a = 1, b = 2 })は素の JSON オブジェクトになります。変換は TOML 1.0.0 仕様に正確に従います。
TOML を JSON に変換するとき、非常に大きな整数はどうなりますか?
TOML は 64 ビット符号付き整数をサポートしますが、JavaScript(したがってブラウザ内の JSON)は 2^53 - 1(9007199254740991)までの整数しか正確に表現できません。TOML に Snowflake ID やナノ秒タイムスタンプのようにそれより大きな整数が含まれる場合、JSON の数値として損失なく表現できないため、値は丸められ、警告が表示されます。これはブラウザ JavaScript の根本的な制限であり、ブラウザベースの変換ツールすべてに影響します。正確に保持するには、そのような値を TOML 内で引用符付きの文字列にしてください。
私の TOML データはどこかのサーバーに送信されますか?
いいえ。解析と変換はすべて JavaScript を使ってブラウザ内で完結します。あなたの TOML がアップロード・保存・記録されることは一切ありません。そのため、プライベートレジストリのトークンを含む Cargo.toml、内部パッケージインデックスを含む pyproject.toml、シークレットを含むデプロイ設定など、機密性の高い構成でも安全に使えます。ブラウザのネットワークタブを開けば、TOML を貼り付けてもネットワークリクエストがまったく発生しないことを確認できます。
JSON を TOML に逆変換できますか?
はい。逆方向には対になる JSON → TOML 変換ツール を使うか、このツール上部の「方向を入れ替え」ボタンをクリックして、その場で入力と出力を反転させてください。JSON → TOML には TOML → JSON にはない制約がいくつかあることに注意してください — トップレベルはオブジェクトでなければならず、null 値には TOML の対応物がありません — これらは JSON → TOML ツールが説明し、処理してくれます。
コマンドラインで TOML を JSON に変換するには?
人気の選択肢は Rust 製 CLI の 'toml' や Go 製ツールの 'yj'(yj -tj は TOML を読み込んで JSON を書き出します)です。Python 3.11 以降では次を実行できます: python3 -c "import tomllib, json, sys; print(json.dumps(tomllib.load(sys.stdin.buffer)))" < config.toml。Node.js では: npx smol-toml(または smol-toml ライブラリを使う小さなスクリプト)。何もインストールせずブラウザで手軽に一度だけ変換するなら、このツールが最速です。
Python・Rust・Node.js で TOML を JSON に変換するには?
Python 3.11 以降: import tomllib, json; data = tomllib.load(open('config.toml','rb')); json.dump(data, open('config.json','w'))。Rust: toml と serde_json クレートを使います — let value: toml::Value = toml::from_str(&text)?; let json = serde_json::to_string_pretty(&value)?。Node.js: import { parse } from 'smol-toml'; const data = parse(text); const json = JSON.stringify(data, null, 2) — これはこのツールが使っているのと同じライブラリと手法です。
変換ツールはキーの順序を保持しますか、コメントはどうなりますか?
テーブル内のキー順は保持されます: キーは TOML に現れるのと同じ順序で JSON 出力に現れます。ただしコメントは失われます — JSON にはコメント構文がないため、TOML の # コメントは変換を生き延びられません。ドキュメントを残す必要がある場合は、JSON に適したフィールドとして追加するか、生成された JSON の隣に元の TOML を保管してください。
TOML 入力にファイルサイズの制限はありますか?
厳密な制限はありませんが、200KB を超える入力ではライブ変換から手動モードに切り替わります: 「変換」ボタンが表示され、クリックしたときだけ変換が実行されるため、ブラウザの応答性が保たれます。典型的な設定ファイル — 大きな Cargo.toml ワークスペースや複数環境のデプロイ設定でも — は 50 ミリ秒を十分に下回って変換されます。

Base64エンコーダー&デコーダー

エンコーディングとフォーマット

Base64のデコード・エンコードが無料でオンラインで行えます。リアルタイム変換、UTF-8・絵文字対応。100%ブラウザ上で動作しデータは外部に送信されません。登録不要。

Base64 画像変換ツール

エンコーディングとフォーマット

Base64 文字列やデータURIをブラウザ上で画像に戻します。プレビューし、寸法と MIME を確認して、PNG・JPG・GIF・SVG としてダウンロード。アップロード不要。

CSV to JSON 変換ツール

エンコーディングとフォーマット

CSVをブラウザ内で即座にJSONに変換。RFC 4180・型推論・ヘッダー行・大整数安全対応。100%プライベート、アップロード不要。

.env から JSON への変換ツール

エンコーディングとフォーマット

.env ファイルを貼り付けるだけで即座に JSON に変換。データベースのパスワードや API キー、トークンはブラウザから一切出ません。100% プライベート、アップロード不要、無料の dotenv パーサー。

無料HTMLエンティティデコーダー — HTMLをアンエスケープ

エンコーディングとフォーマット

HTMLエンティティをデコードし、HTMLをオンラインでアンエスケープ。無料・登録不要・100%ブラウザ内処理。名前付き・10進・16進の参照を文字に戻します。アップロードは一切なし。

無料HTMLエンティティエンコーダー — HTMLをエスケープ

エンコーディングとフォーマット

HTMLエンティティをエンコードし、特殊文字(< > & " ')をオンラインでエスケープ。無料・登録不要・100%ブラウザ内処理。名前付き・10進・16進の出力に対応、アップロードは一切なし。