基本的なTOML→JSON変換

TOMLからJSON形式への変換の基礎を学びます。TOMLのキーと値のペア、文字列、数値がJSONでどのように表現されるかを、わかりやすい例とともに解説します。

TOML Basics

詳細な説明

TOMLからJSONへの変換は、TOMLベースの設定ファイルをJSON入力を期待するシステムと統合する際によく行われるタスクです。TOML(Tom's Obvious, Minimal Language)は最小限の構文で読みやすいように設計されており、JSONオブジェクト(ハッシュテーブル)にきれいにマッピングされます。

シンプルなTOMLドキュメント:

name = "devtoolbox"
version = "1.0.0"
private = true
port = 3000

JSONに変換すると:

{
  "name": "devtoolbox",
  "version": "1.0.0",
  "private": true,
  "port": 3000
}

変換時の主な違い:

  1. 等号がコロンに変わる。 TOMLはキーと値の区切りに = を使用し、JSONは : を使用します。
  2. JSONではすべてのキーがクォートされる。 TOMLのキーはデフォルトでベア(クォートなし)ですが、JSONはすべてのキーにダブルクォートが必要です。
  3. TOMLではエントリ間のカンマが不要。 各キーと値のペアは独自の行に配置されます。JSONではプロパティ間にカンマが必要です。
  4. 波括弧がJSONオブジェクトを囲む。 TOMLのトップレベルは暗黙的にテーブル(オブジェクト)ですが、JSONでは明示的な {} が必要です。

データ型は保持される:

  • TOML "hello"(文字列)はJSONでもそのまま "hello"
  • TOML 42(整数)はJSONでもそのまま 42
  • TOML 3.14(浮動小数点)はJSONでもそのまま 3.14
  • TOML true(ブーリアン)はJSONでもそのまま true

YAMLとは異なり、TOMLは厳密で曖昧さのない型システムを持っています。暗黙的な型変換はありません。true は常にブーリアン、"true" は常に文字列であり、クォートなしの裸の単語が文字列値になることはありません。これにより、TOMLからJSONへの変換は非常に予測可能で安全です。

ユースケース

デプロイメントパイプラインやランタイムがJSON設定を期待する場合に、シンプルなアプリケーション設定ファイルをTOMLからJSONに変換する。Rustプロジェクトのconfig.tomlからJSONベースのマイクロサービス設定への移行などが例です。

試してみる — TOML ↔ JSON Converter

フルツールを開く