TOON:一种为大模型设计的JSON压缩型数据结构

TOON:一种为大模型设计的JSON压缩型数据结构

目录

TOON:一种为大模型设计的JSON压缩型数据结构

一、精准定义,什么是 TOON?

1、JSON 数据格式的局限性

2、TOON 的结构与优势

3、TOON 数据结构的主要特征

4、媒体类型与文件拓展名

二、举例:JSON 与 TOON 描述同一组数据分别是什么样

三、结语


        作者:watermelo37

        ZEEKLOG优质创作者、华为云云享专家、阿里云专家博主、腾讯云“创作之星”特邀作者、火山KOL、支付宝合作作者,全平台博客昵称watermelo37。

        一个假装是giser的coder,做不只专注于业务逻辑的前端工程师,Java、Docker、Python、LLM均有涉猎。



---------------------------------------------------------------------

温柔地对待温柔的人,包容的三观就是最大的温柔。

---------------------------------------------------------------------

TOON:一种为大模型设计的JSON压缩型数据结构

        TOON 入门到实战三部曲:

        基础入门:TOON:一种为大模型设计的JSON压缩型数据结构

        价值探究:探究TOON的价值边界:比JSON更优的大模型友好数据格式?

        开发实战:面向大模型开发:在项目中使用 TOON 的实践与流式处理

        最近 AI 圈子里出现了一个新概念:TOON

        官方对它的描述是这样的:一种简洁、易读的 JSON 数据模型编码,最大限度地减少令牌数量,使模型易于理解结构。它旨在作为现有 JSON 的可随插、无损表示,用于 LLM 输入。它结合了 YAML 基于缩进的嵌套对象结构与 CSV 风格的表格布局,用于统一数组。TOON 的优势在于对象数组统一(每行多个字段,项目结构相同),实现类似 CSV 的紧凑性,同时增加了显式结构,帮助大型语言模型可靠解析和验证数据。

        当下社区中关于 TOON 的文章质量良莠不齐,有些描述甚至是错误的。本文将结合官方描述与工程视角,对 TOON 做一次尽量简洁、准确的入门性介绍,帮助读者先弄清楚一个问题:

        TOON 到底是什么?它解决的是什么问题?

        截至目前,TOON 在 GitHub 上已经获得了 21.5k+ Star,一种比JSON更优秀的大模型友好数据格式真的诞生了?

一、精准定义,什么是 TOON?

1、JSON 数据格式的局限性

        JSON 在工程世界里几乎无可替代,但在与大模型交互时,它有一个非常现实的问题:结构冗余。尤其是同构对象数组,比如:

{ "hikes": [ { "id": 1, "name": "Blue Lake Trail", "distanceKm": 7.5 }, { "id": 2, "name": "Ridge Overlook", "distanceKm": 9.2 }, { "id": 3, "name": "Wildflower Loop", "distanceKm": 5.1 } ] } 

        每一行都在重复:"id" "name" "distanceKm"。

        在 LLM 输入中,这些重复的结构信息会消耗更多的上下文空间。JSON 的问题在于并非为语言模型的上下文机制设计,完善通用的结构给它带来了更多的信息冗余,但信息冗余是要花钱的。

2、TOON 的结构与优势

        TOON 的核心思想就是:在保持 JSON 语义不变的前提下,把重复结构前移并声明一次 + 提前告知数据条目总长度。

        它融合了三种表达风格:

  • YAML 的缩进结构:表达对象嵌套
  • 表格化声明:表达同构对象数组
  • 显式结构标注:减少歧义,方便模型解析

        其核心就在于 TOON 将键名重复的同构对象数组变成形如“key[n]{a,b,c}:”的声明,后续n行只表示值。

        举个例子,上面的JSON数据转化为 TOON 就是:

hikes[3]{id,name,distanceKm}: 1,Blue Lake Trail,7.5 2,Ridge Overlook,9.2 3,Wildflower Loop,5.1

        是不是简洁了很多?重复的键名、空格、括号都被去除了。

3、TOON 数据结构的主要特征

        官方仓库对于 TOON 的主要特征是这样描述的:

  • 令牌高效且准确:TOON 在混合结构基准测试中,在 4 个模型中,准确率达到 74%(而 JSON 仅为 70%),同时使用约 40% 的令牌。
  • JSON 数据模型:通过确定性、无损的往返编码与 JSON 相同的对象、数组和原语。
  • LLM 友好型护栏: 明确的[N]长度和{fields}头部为模型提供了清晰的模式,提高了解析可靠性。
  • 最小语法: 使用缩进代替大括号,减少引用,赋予类似 YAML 的可读性和 CSV 风格的紧凑性。
  • 表格数组: 均匀的对象数组合并成表,表中声明字段一次,逐行传输取值。
  • 多语言生态系统:TypeScript、Python、Go、Rust、.NET 及其他语言中的规范驱动实现。

4、媒体类型与文件拓展名

        TOON 文件在 HTTP 和内容类型感知的上下文中使用 .toon 扩展名和临时媒体类型 text/toon。TOON 文档始终采用 UTF-8 编码;可以指定 charset=utf-8 参数,但省略时默认为 UTF-8。

二、举例:JSON 与 TOON 描述同一组数据分别是什么样

        TOON 看起来像添加了长度的 csv ?先别急,我们可以通过一个官方的对比案例理解一下 TOON 结构的真实魅力。

        原始 JSON是这样的:

{ "context": { "task": "Our favorite hikes together", "location": "Boulder", "season": "spring_2025" }, "friends": ["ana", "luis", "sam"], "hikes": [ { "id": 1, "name": "Blue Lake Trail", "distanceKm": 7.5, "elevationGain": 320, "companion": "ana", "wasSunny": true }, { "id": 2, "name": "Ridge Overlook", "distanceKm": 9.2, "elevationGain": 540, "companion": "luis", "wasSunny": false }, { "id": 3, "name": "Wildflower Loop", "distanceKm": 5.1, "elevationGain": 180, "companion": "sam", "wasSunny": true } ] }

        其中有各种特殊格式,比如嵌套、对象数组、非对象数组、普通对象等。转化为 TOON 后就变成了这样:

context: task: Our favorite hikes together location: Boulder season: spring_2025 friends[3]: ana,luis,sam hikes[3]{id,name,distanceKm,elevationGain,companion,wasSunny}: 1,Blue Lake Trail,7.5,320,ana,true 2,Ridge Overlook,9.2,540,luis,false 3,Wildflower Loop,5.1,180,sam,true

        在不影响人类可读性的基础上,TOON 去除了所有的普通对象中的大括号、空格甚至双引号,将所有的同构对象数组和普通数组都简化成类似CSV的结构,并将数组的总长度、键名都提前声明,便于大模型获取核心信息。

        这一点除了节省 token 外,官方认为还带来了识别和搜索效率的提升,这一点小瓜将在下一次更新《探究TOON的价值边界:比JSON更优的大模型友好数据格式?》中展开介绍。

三、结语

        到这里为止,我们可以给 TOON 一个非常清晰的定义:TOON 是一种为大模型输入设计的、对 JSON 进行结构压缩的表示方式。它吸纳了 yaml、 csv 的表示特点,对 JSON 数据的表达结构进行了重构,在特定场景下能节约 token 的使用量。

        它通过消除同构对象数组中的结构重复显式声明数组规模与字段模式来降低结构性 token 的消耗。但问题也随之而来,是不是所有 JSON 都适合 TOON?TOON 是否真的更利于模型理解?这些问题,将在下一篇《探究TOON的价值边界:比JSON更优的大模型友好数据格式?》展开。

        只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

        其他热门文章,请关注:

        极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图

        你真的会使用Vue3的onMounted钩子函数吗?Vue3中onMounted的用法详解

        Web Worker:让前端飞起来的隐形引擎

        测评:这B班上的值不值?在不同城市过上同等生活水平到底需要多少钱?

        通过array.filter()实现数组的数据筛选、数据清洗和链式调用

        DeepSeek:全栈开发者视角下的AI革命者

        TreeSize:免费的磁盘清理与管理神器,解决C盘爆满的燃眉之急

        通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能

        高效工作流:用Mermaid绘制你的专属流程图;如何在Vue3中导入mermaid绘制流程图

        通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制

      【前端实战】如何让用户回到上次阅读的位置?

        前端实战:基于Vue3与免费满血版DeepSeek实现无限滚动+懒加载+瀑布流模块及优化策略

        深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解

        el-table实现动态数据的实时排序,一篇文章讲清楚elementui的表格排序功能

        JavaScript双问号操作符(??)详解,解决使用 || 时因类型转换带来的问题

        内存泄漏——海量数据背后隐藏的项目生产环境崩溃风险!如何避免内存泄漏

        MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver

        JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、DOM操作等

Read more

AI员工——OpenCode、OpenClaw+Ollama的安装与配置

AI员工——OpenCode、OpenClaw+Ollama的安装与配置

人工智能(AI)相关的知识内容解析https://coffeemilk.blog.ZEEKLOG.net/article/details/158647749?spm=1001.2014.3001.5502 一、OpenCode的介绍与安装配置  1.1、OpenCode介绍 OpenCode的介绍序号Opencode介绍说明1opencode是什么OpenCode是一款开源AI编码代理工具,可在终端(TUI)、桌面应用和 IDE扩展中使用,支持多种大语言模型、上下文感知,主打隐私优先。2opencode的定位 《1》不是IDE插件,而是独立智能体(Agent),可理解上下文,规划任务、执行代码修改并验证结果。 《2》不是大语言模型本身,而是模型调度层,支持75+的大语言模型提供商(如:Claude、GPT、Gemini、本地的Llama、Qwen等)。 《3》采用MIT协议开源,社区活跃。

By Ne0inhk
“神经网络的奥秘”一篇带你读懂AI学习核心

“神经网络的奥秘”一篇带你读懂AI学习核心

引言:“神经网络的奥秘”一篇带你读懂AI学习核心 想学AI却卡在神经网络?这篇带你轻松突破核心难点! 如今打开手机,AI修图、智能推荐、语音助手随时待命;刷到科技新闻,自动驾驶、AI制药、大模型对话的进展不断刷新认知。而这一切AI能力的核心,都离不开一个关键技术——神经网络。 很多人把神经网络当成“高深黑箱”,觉得必须有深厚的数学功底才能理解。但其实,神经网络的核心逻辑和人类大脑的学习方式很相似,哪怕是非科班出身,也能通过通俗的解释搞懂它的运作原理。这篇文章就从“是什么、怎么学、用在哪”三个维度,带你彻底读懂神经网络,真正入门AI学习的核心。 * 引言:“神经网络的奥秘”一篇带你读懂AI学习核心 * 一、先搞懂基础:神经网络到底是什么? * 二、核心奥秘:神经网络是如何“学习”的? * 三、必懂概念:新手入门神经网络的5个关键术语 * 四、实际应用:神经网络在我们身边的5个场景 * 五、新手学习路径:从入门到实战的3个阶段

By Ne0inhk

AI风口劝退指南:为什么99%的普通人不该盲目追AI?理性入局的完整路径与实战建议(2026深度解析)

AI风口劝退指南:为什么99%的普通人不该盲目追AI?理性入局的完整路径与实战建议(2026深度解析) 摘要: 2026年,AI大模型热潮持续升温,但“全民学AI”的背后,是大量非科班、无基础、资源匮乏者陷入时间、金钱与心理的三重亏损。本文从认知偏差、能力错配、资源垄断、职业断层、教育泡沫五大维度,系统剖析为何多数人不应盲目追逐AI风口,并提供一条分阶段、可落地、高性价比的理性参与路径。全文包含技术原理详解、真实失败案例、实用代码示例、调试技巧及职业规划建议,全文约9800字,适合所有对AI感兴趣但尚未入局、或已深陷焦虑的技术爱好者阅读。 一、引言:当“AI=财富自由”成为时代幻觉 2026年3月,某技术论坛上一则帖子引发广泛共鸣: “辞职三个月,每天16小时啃《深度学习》《Attention Is All You Need》,结果连Hugging Face的Trainer都配置失败。存款耗尽,

By Ne0inhk

统信 UOS V2500 服务器 | OpenClaw AI Agent 全流程安装部署手册

一、文档概述 1.1 文档目的 本文档详细阐述在统信 UOS 服务器操作系统中安装、部署及初始化配置 OpenClaw 的全流程,为运维人员及开发人员可落地的操作指南,确保 OpenClaw 稳定部署并正常发挥其 AI 助手核心能力。 1.2 OpenClaw 简介 OpenClaw 是一款本地 AI Agent 工具,前身为 Clawdbot,经 moltbot 阶段迭代优化,具备高主动性和强系统底层操作能力。核心功能包括执行 Shell 命令、自动化提交 Git PR、管理数据库,支持对接 Telegram、WhatsApp 等主流通讯应用;其 “Skills” 插件机制可按需扩展功能,默认本地部署模式,兼容 Anthropic、OpenAI

By Ne0inhk