TOON 是对 JSON 数据模型的一种紧凑、无损编码,专为 LLM 提示词设计。它对嵌套对象使用 YAML 风格的缩进,对结构一致的数组使用 CSV 风格的表格布局——相比 JSON 最多可减少 60% 的 token。
TOON 最大的优势:结构一致的对象数组会折叠成一行表头 [N,]{fields}:,后跟以逗号分隔的数据行——就像 CSV,但结构更明确。
仅在必要时才给字符串加引号——当它看起来像数字、布尔值、null,或包含分隔符、含首尾空白、为空时。其余情况一律不加引号直接书写。
在数据检索基准测试中,TOON 的 LLM 准确率为 76%,而 JSON 为 75%,同时 token 用量减少约 40%。最好把它当作一个转换层:API 用 JSON,发给 LLM 时用 TOON。
嵌套对象使用缩进而非花括号。每个键值对写作 key: value,嵌套对象每层增加一级缩进(默认 2 个空格)。
当数组中所有对象都共享相同的基本类型字段时,TOON 会写一个表头 [N,]{f1,f2,f3}:,随后每个对象对应一行以逗号分隔的数据。这是节省 token 的最大来源。
是的。TOON 编码的对象、数组和基本类型与 JSON 完全相同。你可以进行 JSON → TOON → JSON 的往返而不丢失任何数据。类型通过 TOON 的加引号规则得以保留。
当把结构化数据作为上下文或输入发送给 LLM 时使用 TOON。节省的 token 可直接降低 API 成本,并让更多数据放进上下文窗口。程序化 API、数据库以及任何需要严格互操作性的场景,仍应使用 JSON。