JSON 转 TOON 转换器可即时将标准 JSON 数据转换为 TOON(面向令牌的对象表示法)——这是一种现代化的、令牌化的数据格式,专为可读性、紧凑性和机器效率而设计。它还允许您通过缩进、键折叠和分隔符选项来自定义 TOON 的编码方式。
此基于浏览器的工具在本地运行,并显示 JSON 与 TOON 之间的详细比较,包括令牌计数和空间节省情况。
什么是 TOON 格式?
TOON 代表 面向令牌的对象表示法——一种受 JSON 启发、人类可读的语法,它将结构化数据表示为有序的令牌列表。它最大限度地减少了重复,并支持类型化数据、注释和元数据的灵活扩展。
TOON 是开源的,定义在 github.com/toon-format/toon。
JSON 转 TOON 转换的工作原理
当您粘贴 JSON 时,该工具会将其解析为抽象语法树(AST),并将该结构序列化为 TOON 令牌。数组、对象和基本类型使用 @toon-format/toon 库被映射为有序的、自描述的令牌。
所有处理都在本地进行——无需上传。您还可以复制生成的 TOON 代码,或直接在结果表中比较其大小和令牌效率。
可配置的输出设置
该转换器提供了用于自定义 TOON 输出格式的高级控件:
- 缩进: 控制嵌套数据中每个层级使用的空格数。可选择 0(紧凑)、2 或 4 个空格以获得更好的可读性。
- 键折叠: 将具有单个嵌套键的对象折叠为较短的点分隔形式(例如,使用
data.metadata.items而不是嵌套缩进)。'安全'模式确保可读性,同时不会扁平化复杂结构。 - 分隔符: 定义数组元素和内联值如何分隔(逗号、分号或竖线)。对于与其他序列化风格保持一致非常有用。
- 允许重复项: 如果您的输入数据有意包含重复键,则在 TOON 输出中保持它们不变。
这些参数允许开发者根据用例微调 TOON 输出的紧凑性、兼容性或可读性。
为什么使用 TOON 而不是 JSON?
- 紧凑性: 去除冗余语法和引号,减小高达 70% 的大小。
- 可扩展性: 支持注释和元数据,用于更丰富的结构。
- 速度: 对人类和机器都更易于解析。
- 可定制性: 可调整的缩进、键折叠和分隔符。
- 互操作性: 设计为与 JSON 管道共存。
示例:JSON 与 TOON 对比
// JSON
{
"user": { "name": "Alice", "age": 25 }
}
// TOON (安全折叠 + 逗号分隔符)
user{name,age}: Alice,25
常见问题解答
这个转换器有什么作用?
它将任何有效的 JSON 输入转换为 TOON(面向令牌的对象表示法),显示您的结构化数据在紧凑的、令牌化格式下的样子。
缩进、键折叠和分隔符设置有什么作用?
缩进改变嵌套层级的显示方式。键折叠将长的嵌套链折叠为点分隔键以实现简洁。分隔符控制内联数组或值组如何分隔(例如,逗号或竖线)。这些影响可读性,但不影响底层结构。
TOON 是 JSON 的替代品吗?
不是。TOON 是一种实验性的紧凑表示法,旨在补充 JSON——对于可视化、压缩和探索未来的序列化技术非常有用。
转换是在本地进行的吗?
是的。所有处理都在您的浏览器中完成;您的数据永远不会离开您的设备。
我可以比较大小和令牌使用情况吗?
是的。转换后,该工具会显示一个 JSON 与 TOON 的对比表,展示近似的令牌数、字节大小和节省百分比。
可以从 TOON 转换回 JSON 吗?
是的。TOON 库支持反向解析,可以从 TOON 文本重建有效的 JSON 结构。
我为什么要关注 TOON?
TOON 提供了一种可视化和优化结构化数据的新方法。它对于对紧凑数据表示法感兴趣的开发者、教育工作者和数据工程师非常有用。
参考资料
- TOON 项目 : : TOON 规范与文档 (2025) )2025( 来源: GitHub 仓库https://github.com/toon-format/toon