JSON转TOML转换器
JSON转TOML转换器可将 JSON(JavaScript Object Notation)数据转换为干净、合法的 TOML(Tom's Obvious Minimal Language)。在左侧粘贴 JSON,右侧便会随输入实时显示 TOML 输出,对象、嵌套结构、对象数组和日期时间值都会自动映射为对应的 TOML 语法。
它专为使用 TOML 的配置文件而打造 —— 例如 Rust 的 Cargo.toml、Python 的 pyproject.toml、Hugo 等工具 —— 也适用于 DevOps 配置以及在不同格式系统之间迁移数据。如果你正在学习 TOML,它还是一个快速途径,让你看清已经熟悉的 JSON 结构如何对应到 TOML 的表与键。
使用方法
添加你的 JSON
在左侧面板粘贴或输入 JSON,或点击上传文件从设备载入一个 .json 文件。点击示例数据可载入一份现成的配置示例来试用。
即时查看转换结果
TOML 输出会自动出现在右侧面板。状态栏会显示输入是有效还是无效,并附上键的数量和输出大小。
调整选项
将 Null 设为跳过(省略 null 键)或 ""(转为空字符串),并切换内联表让小对象保持紧凑。输出会立即重新转换。
复制或下载
点击复制把 TOML 放入剪贴板,或点击下载将其保存为 .toml 文件。清空会清除两侧面板,方便重新开始。
功能特性
实时转换
JSON 会随输入实时转换为 TOML,更改任意选项都会立即重新转换输出。
智能结构映射
对象变为 [table] 标头,嵌套对象使用 [parent.child] 这样的点分路径,基础类型数组保持内联。
表数组
当数组中每个元素都是对象时,会以 [[array]] 语法写成 TOML 表数组。
内联表开关
最多含三个基础类型值的小对象,可渲染为 { key = "value" } 这样紧凑的内联表。
Null 处理
TOML 没有 null 类型,因此可选择跳过 null 键(并给出警告)或将其转为空字符串。
日期时间识别
符合 RFC 3339 日期、时间或日期时间格式的字符串会输出为不带引号的 TOML 日期时间。
自动加引号
含空格、点号或特殊字符的键会自动加引号,简单的键则保持裸写以便阅读。
上传与下载文件
直接从设备载入 JSON 文件,并一键将结果保存为 .toml 文件。
校验与警告
无效的 JSON 会显示清晰的错误提示,警告则会标出无法干净映射到 TOML 的值。
状态栏统计
底部状态栏会报告有效 / 无效 / 就绪状态、键的总数以及输出文件大小。
常见问题
如何把 JSON 转换为 TOML?
在左侧面板粘贴或输入你的 JSON,或上传一个 .json 文件。TOML 会随输入自动出现在右侧面板。之后你可以复制它,或下载为 .toml 文件 —— 无需安装,也无需注册。
转换是在我的浏览器中完成的吗?数据安全吗?
是的。所有解析和转换都在你的浏览器本地完成,包括你上传的文件 —— 它们只在设备上读取,绝不会发送到服务器。你的 JSON 不会被存储或追踪。
JSON 和 TOML 有什么区别?
两者都用于描述结构化数据,但 TOML 的设计目标是成为一种直观、对人友好的配置格式。它使用 [table] 标头、点分路径和裸写的日期时间,且根必须始终是一个表。JSON 则更通用,允许在根处使用数组、基础类型或 null,而这些 TOML 在根处都不接受。
为什么不能把 JSON 数组作为根来转换?
TOML 要求根必须是键值对组成的表,因此顶层 JSON 数组没有对应写法。先把数组包进一个对象里,例如 {"items": [1, 2, 3]},它就能干净地转换了。
null 值是如何处理的?
TOML 没有 null 类型,因此你可以通过 Null 选项决定如何处理。跳过会从输出中省略 null 键,并显示一条警告列出被丢弃的键;""则把它们转为空字符串。
支持嵌套对象和对象数组吗?
支持。嵌套对象会变成 [parent.child] 这样的点分子表,而每个元素都是对象的数组会写成使用 [[name]] 的 TOML 表数组。同时包含对象和基础类型的混合数组则会改作内联数组处理。
什么是内联表?
内联表是一种用于小对象的紧凑 TOML 语法,例如 point = { x = 1, y = 2 }。开启内联表选项后,最多含三个基础类型值的对象就会使用这种格式,让结果更紧凑。
日期时间字符串会被自动识别吗?
会的。符合 RFC 3339 格式的字符串 —— 例如 2024-01-15、2024-01-15T10:30:00Z 或 10:30:00 —— 会输出为不带引号的 TOML 日期时间,从而保持为合法的日期时间值,而不是普通字符串。
有大小限制吗?
没有固定限制。由于一切都在你的浏览器中运行,实际上限取决于设备的内存。转换器能高效处理较大的 JSON 文件,不过极大的数据集转换起来可能会慢一些。
还没有评论,快来发表第一条!