Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールが役に立ったら、開発者にコーヒーを奢ってください ☕
JSONデータをTOML形式に素早く変換でき、設定ファイルのマイグレーションに対応します
TOMLを生成するにはJSONデータを入力してください。
あるAPIレスポンスなどのJSONフォーマット設定ファイルがある場合に、TOML形式に変換したいことがあります。なぜなら、TOMLはより読みやすく、コメント対応でき、長期メンテナンスに適した設定ファイルだからです。例えば、バックエンドAPIからユーザー設定データを取得し、サーバーの単一設定ファイルに保存する必要がある場合や、RustやPythonプロジェクトを開発しているときなど、これらの言語の設定ライブラリはTOMLを好みます。当社のオンライン変換ツールは、ワンクリックでこの変換を完了でき、手動で形式を行ごとに変更する必要がありません。
JSON(JavaScript Object Notation)は軽量なデータ交換形式で、すべてのキーと値をダブルクォーテーションで囲む必要があり、構造はコンパクトですがコメント機能がありません。TOML(Tom's Obvious Minimal Language)は設定ファイル専用の形式で、テーブル(table)と配列テーブル(array of tables)を使って階層を表現し、#によるコメント対応でき、キー名をダブルクォーテーションなしで記述でき、人間による読み書きがより容易です。簡単に言うと、JSONはマシン間のデータ伝送に向いており、TOMLは人間の編集に向いています。
ユーザー情報のJSONの例を想定します:{"name": "太郎", "age": 30, "active": true}。当社の変換ツールを開き、左側のJSON入力ボックスにこのコンテンツを貼り付けます(外側にブラケットがないことに注意してください。これはオブジェクトを表します)。「変換」ボタンをクリックすると、右側の出力ボックスに表示されます:
name = "太郎"
age = 30
active = true変換後のTOMLでは、各行が1つのキーと値のペアに対応し、ブール値trueは小文字のtrueに変換されます(TOML仕様自体も小文字を使用します)。この例では、すべてのフィールドがトップレベルにあり、TOMLは中括弧を必要としないため、構造は一目瞭然です。
別の複雑なJSONの例:{"server": {"host": "127.0.0.1", "port": 8080}, "tags": ["dev", "test"]}。TOMLに変換した後:
[server]
host = "127.0.0.1"
port = 8080
tags = ["dev", "test"]ここではserverオブジェクトはTOMLテーブル([server])になり、その下のキーが直接その下に続きます。tags配列はまだ配列の構文を保持し、TOMLの配列内の要素はカンマで区切られ、角括弧は同じ行にあることに注意してください。さらにネストされたオブジェクト配列(例えば、複数ユーザー)がある場合、TOMLは[[users]]を使用して識別します。
変換後のTOMLテキストは、プロジェクト設定ファイル(例えばconfig.toml)に直接貼り付けて使用できます。解釈するときは、次の点に注意してください:
- トップレベルキーにはテーブルヘッダーがなく、キーと値のペアを直接書きます。
- ネストされたオブジェクト{"a": {"b": 1}}は[a]テーブルになり、b = 1がその下に表示されます。
- オブジェクト配列(例:[{"x":1}, {"x":2}])は[[arr]]テーブルになり、各配列要素が個別のテーブルになります。
- 空のオブジェクト、空の配列は保持されます(空のテーブルまたは空の配列)。
- 重要:TOML 1.0はJSONのnull値、浮動小数点数の特殊値(NaN, Infinity)、および64ビット符号付き整数の範囲を超える超大型整数をサポートしていません。JSONでこれらを使用した場合、変換器は「サポートされていない」メッセージを表示し、そのフィールドをスキップします。
| JSON構文 | TOML構文 | 例 |
|---|---|---|
"key": value | key = value | "name": "Tom" → name = "Tom" |
{"sub": {}} | [sub] 空のテーブル | → [sub] (空) |
[elem1, elem2] | [elem1, elem2] | 配列構文は基本的に同じ |
[{"k":1}, {"k":2}] | [[arr]] + k = 1等 | オブジェクト配列 |
null | サポートなし | スキップまたはエラー |
| コメント:なし | # コメント | 行末にコメントを追加可能 |
1.0は1.0に変換されます。1は整数1に変換されます。TOMLは整数と浮動小数点数を区別しますが、JSONはNumber型のみです。変換器は可能な限り元の形式を保持しようとしますが、1e2のような科学記法の場合、TOMLもサポートしています。true/falseで指定する必要があり、JSONは大文字または小文字を許可します。当社の変換器は常に小文字で出力します。1979-05-27T07:32:00Z)を持っています。JSONでISO 8601フォーマット文字列を使用しても、変換器は自動的に認識しません。文字列として扱われます。手動で調整が必要です。[foo.bar.baz]が表示され、保守性に注意する必要があります。Q1: 変換後にデータが失われますか?
A: ほとんどの場合は完全に保持されますが、TOMLはnull、NaN、Infinity、および2^63-1より大きい整数をサポートしていないため、これらのフィールドはスキップされるか警告が表示されます。
Q2: 大きなJSONファイルをサポートしていますか?
A: オンラインツールはブラウザメモリの制限を受けるため、ファイルサイズは2MB未満をお勧めします。超大規模JSONについては、ローカルツールで処理することをお勧めします。
Q3: JSONの配列がすべて文字列の場合、変換後も配列のままなのはなぜですか?
A: TOMLはもちろん文字列配列をサポートしており、変換後のフォーマットは変わりません。ダブルクォートをTOML標準に統一するだけです(TOMLでは文字列はダブルクォートで指定する必要があります)。
Q4: 変換後のTOMLはRustのtomlライブラリやPythonのtomllibで直接使用できますか?
A: はい、当社の出力はTOML v1.0規格に準拠しており、多くの主流言語のパーサーで正しく読み取られます。
Q5: JSONにコメント(//)が含まれているのはなぜですか?
A: 標準的なJSONはコメントをサポートしていません。エディタまたはコメント付きJSONファイルから貼り付けた場合は、貼り付ける前にコメントを削除してください。そうしないと、変換器はJSON構文エラーを報告します。
Q6: このツールは私のデータを保存しますか?
A: すべての変換はブラウザのローカルで実行されます。サーバーにアップロードされず、データがコンピュータを離れることはありません。
本変換器はTOML v1.0仕様(toml.io/en/v1.0.0)に基づいています。次のシナリオには適さない可能性があります:
- JSONのnull値を保持する必要がある場合(TOMLに同等の型がないため、空の文字列またはデフォルト値に変更することをお勧めします)。
- JSONにコメントが含まれている場合(非標準。変換前に手動で削除する必要があります)。
- 超大規模またはネストが深いJSON(10層を超えるとは出力の可読性に影響する可能性があります)。
- 精度要件が非常に高い金融数値(TOML浮動小数点数は64ビット倍精度を使用し、JSONと同じですが、科学計算シナリオでは別途検証してください)。
変換結果が期待と異なる場合は、JSONが厳密にJSON形式に準拠しているかを確認してください(例えば、キー名はダブルクォートで囲む必要があり、末尾にコンマがないこと)。
上記の計算機で自分の数字を試してみることができます。

JSONからJavaエンティティクラスへの変換
JSON文字列を標準的なJavaのPOJOクラスコードに自動変換します。API連携やデータモデリングなどの開発シーンに最適です。

JSON YAML 相互変換
JSONとYAMLの構造化データフォーマット間で双方向変換を行い、カスタム出力スタイルをサポートします。

JSON・XMLフォーマット変換ツール
JSONとXMLのデータ構造を相互に変換するためのツール。開発、テスト、データ処理のニーズに応えます。

JSON・CSV相互変換
JSON配列とCSVデータの相互変換を実現。データ分析やシステム開発に最適なツールです。

JSON C# クラス変換
JSONデータをC#のクラス定義コードへ自動変換します。.NET開発者のデータモデル構築に最適です。