TOON形式とは?

TOON(Token-Oriented Object Notation)は、大規模言語モデル(LLM)向けに特別に設計されたコンパクトで人間が読みやすいデータシリアライゼーション形式です。JSONと異なり、配列内のすべてのオブジェクトに対してフィールド名を繰り返すのではなく、TOONはフィールド名を一度宣言してからデータを行としてストリーミングします。これはCSVに似ていますが、明示的な構造を持っています。この設計により、特に均一なオブジェクト配列の場合、フォーマットされたJSONと比較して通常30~60%のtoken使用量削減が実現されます。TOONはネストされたオブジェクト用のYAMLのインデント構造と、均一配列用のCSVの表形式効率を組み合わせており、token コストが重要なLLMコンテキストに最適化されています。

ツール説明

このコンバーターは、JSONとTOON形式間でデータを双方向に変換します。JSONデータを貼り付けるだけでコンパクトなTOON出力を生成するか、TOONを標準JSONに変換できます。このツールは公式の@toon-format/toonライブラリを使用して、正確な変換を保証します。TOONは繰り返される構造を持つデータセット(ユーザーレコード、トランザクションログ、API応答、またはその他の表形式データなど)に特に効果的です。LLMで作業する際にtoken数を削減することで効率が向上します。

JSON入力:

{
  "users": [
    { "id": 1, "name": "Alice", "role": "admin" },
    { "id": 2, "name": "Bob", "role": "user" }
  ]
}

TOON出力:

users[2]{id,name,role}:
  1,Alice,admin
  2,Bob,user

ネストされた構造の例:

ネストされたオブジェクトを含むJSONはインデント付きTOON形式に変換されます:

{
  "order": {
    "id": "ORD-456",
    "items": [
      { "sku": "A1", "qty": 2, "price": 19.99 },
      { "sku": "B2", "qty": 1, "price": 29.99 }
    ],
    "total": 69.97
  }
}

以下のようになります:

order:
  id: ORD-456
  items[2]{sku,qty,price}:
    A1,2,19.99
    B2,1,29.99
  total: 69.97

機能

  • 双方向変換 JSONとTOON形式間の完全な変換
  • 大幅なtoken削減 均一配列の場合、JSONと比較して30~60%少ないtoken
  • データ構造の保持 ネストされたオブジェクト、配列、プリミティブ値を含む
  • 自動形式検出 と最適なエンコーディング戦略
  • 人間が読みやすい出力 均一データの明確な表形式構造
  • 型安全な変換 数値、ブール値、null、文字列を正しく保持
  • エッジケースの処理 空の配列、ネストされた構造、混合型を含む
  • リアルタイム変換 入力時に即座に結果を表示

ユースケース

  1. LLM API最適化 - JSON ペイロードをTOON形式に変換してからAPI呼び出しを行い、GPT、Claude、その他のLLMに構造化データを送信する際のtoken コストを削減
  2. データ分析プロンプト - より効率的なエンコーディングでLLM分析用のデータセットを準備し、コンテキスト制限内でより大きなデータセットを許可
  3. 構造化データ生成 - プロンプトでTOONを使用して、LLMにJSONよりも効率的に表形式データを生成するよう要求
  4. ログ処理 - アプリケーションログまたは分析データをコンパクト形式に変換して、LLMベースの分析と要約を実行
  5. 構成管理 - インフラストラクチャ管理またはDevOpsタスク用にLLMを使用する場合、構成ファイルをtoken効率的な形式に変換

Token効率の詳細

TOONは複数の最適化を通じて大幅なtoken削減を実現します:

  • 繰り返されるフィールド名なし - すべてのオブジェクトに対して繰り返すのではなく、ヘッダーで一度フィールドを宣言
  • 最小限の句読点 - 安全な場所で冗長な括弧、中括弧、引用符を削除
  • 表形式 - 均一なオブジェクト配列にCSV形式の行を使用
  • 区切り文字の柔軟性 - 最適なtokenization用にカンマ(デフォルト)、タブ、またはパイプ区切り文字をサポート

Token比較例(GPT-5 tokenizer使用):

  • JSON(フォーマット): 100従業員レコード ≈ 49,776 token
  • TOON: 同じデータ ≈ 17,635 token(64.6%削減)
  • CSV: ≈ 15,583 token(最もコンパクト、ただし構造がない)

TOONはLLMアプリケーション向けのコンパクト性と構造的完全性の最適なバランスを提供します。

形式概要

オブジェクト: ネストのためのインデント付きシンプルなキーと値のペア

id: 123
name: Ada
active: true

配列: 括弧内で宣言された長さ、プリミティブ配列はインライン

tags[3]: reading,gaming,coding

表形式配列: フィールドヘッダー付きテーブルとしてフォーマットされた均一なオブジェクト

items[2]{sku,qty,price}:
  A1,2,9.99
  B2,1,14.5

引用ルール: 文字列は必要な場合のみ引用されます(区切り文字、コロン、または他の型に見える場合)

変換に関する注記

JSONをTOONに変換する場合:

  • 均一なオブジェクト配列は自動的に表形式を使用
  • ネストされた構造は適切なインデントを保持
  • JSON以外の型(undefined、関数)はnullに変換
  • 日付はISO文字列に変換
  • 数値は科学記法を避ける

TOONをJSONに変換する場合:

  • 2スペースインデント付きの標準JSON形式を保持
  • 配列の長さとフィールドの一貫性を検証
  • 特殊文字を適切にエスケープ
  • 型情報(数値、ブール値、null)を保持