TOMLのテーブル配列([[table]])とJSONのオブジェクト配列

TOMLのダブルブラケット[[table]]構文がJSONでオブジェクト配列をどのように作成するかを学びます。構造化された設定エントリのリストを定義するこの強力な機能を理解します。

TOML to JSON

詳細な説明

テーブル配列構文([[table]])はTOMLの最も特徴的な機能の一つです。冗長なインラインテーブル構文を必要とせずに、オブジェクトの配列を定義するクリーンな方法を提供します。

TOMLのテーブル配列:

[[products]]
name = "Hammer"
sku = 738594937

[[products]]
name = "Nail"
sku = 284758393
color = "gray"

JSONに変換すると:

{
  "products": [
    {
      "name": "Hammer",
      "sku": 738594937
    },
    {
      "name": "Nail",
      "sku": 284758393,
      "color": "gray"
    }
  ]
}

[[products]]products 配列に新しい要素を作成します。2つの [[products]] ヘッダー間のすべてのキーと値のペアはその配列要素に属します。

ネストされたテーブル配列:

[[fruits]]
name = "apple"

[[fruits.varieties]]
name = "red delicious"

[[fruits.varieties]]
name = "granny smith"

[[fruits]]
name = "banana"

[[fruits.varieties]]
name = "plantain"

JSONに変換すると:

{
  "fruits": [
    {
      "name": "apple",
      "varieties": [
        {"name": "red delicious"},
        {"name": "granny smith"}
      ]
    },
    {
      "name": "banana",
      "varieties": [
        {"name": "plantain"}
      ]
    }
  ]
}

仕組み:

  1. [[fruits]]fruits 配列に新しいオブジェクトを追加します。
  2. [[fruits.varieties]] は最後に定義された fruits 要素内の varieties 配列に新しいオブジェクトを追加します。
  3. 次の [[fruits]] は独自の varieties 配列を持つ新しいフルーツオブジェクトを開始します。

JSONからTOMLに変換する場合: すべての要素がオブジェクトであるJSON配列は、TOMLの [[array]] 構文に変換すべきです。複数のキーを持つオブジェクトにはインラインテーブルよりも読みやすくなります。

インラインテーブルとの比較:

# インライン(コンパクトだが複雑なオブジェクトでは読みにくい)
products = [{name = "Hammer", sku = 738594937}, {name = "Nail", sku = 284758393}]

# テーブル配列(複雑なオブジェクトに読みやすい)
[[products]]
name = "Hammer"
sku = 738594937

1〜2個のキーを持つシンプルなオブジェクトにはインラインテーブルを、それ以上に複雑なものにはテーブル配列を使用してください。

ユースケース

TOMLファイルで複数のサーバーエンドポイント、データベースレプリカ、プラグイン設定を定義する場合。各エントリが複数のプロパティを持ち、プログラム的に消費するためにJSONに変換する場面で使用します。

試してみる — TOML ↔ JSON Converter

フルツールを開く