使用步骤
- 在左侧粘贴 JSON,或点击「载入示例」。
- 右侧实时生成 TOML;JSON 格式有误时,会提示出错所在的行。
- 复制或下载 TOML;点击「反向转换」可以把 TOML 转回 JSON。
参数说明
- null 值
- TOML 没有 null。值为 null 的键和数组元素会被省略,输出第一行用注释列出省略了哪些路径。
- 顶层不是对象
- TOML 文档的顶层必须是表。如果 JSON 顶层是数组或单个值,会放到 items 键下,并在注释里说明。
- 表与表数组
- 嵌套对象输出为 [a.b] 形式的表,元素都是对象的数组输出为 [[a]] 表数组,其余数组写成行内数组。
示例
JSON:
{"server":{"host":"0.0.0.0","port":8080},"databases":[{"name":"main","url":"postgres://db:5432/app"}]}
TOML:
[server]
host = "0.0.0.0"
port = 8080
[[databases]]
name = "main"
url = "postgres://db:5432/app"
常见问题
TOML 和 JSON 有什么区别?
TOML 是为人手写的配置格式,支持注释、按节分组、日期时间类型,常用于 Cargo、pyproject、Hugo、Netlify 等。JSON 更适合程序之间传数据,不支持注释。
整数 1.0 为什么变成了 1?
JSON 在 JavaScript 中解析后不区分 1 和 1.0,都会按整数输出。需要浮点数的字段请在 TOML 里手动改成 1.0。
键的顺序会变吗?
普通键值保持 JSON 中的顺序;按 TOML 规则,[表] 和 [[表数组]] 必须写在普通键值之后,所以它们会排到后面。
数据会上传吗?
不会。解析和转换都在浏览器中完成,包含令牌、密码的配置也不会外泄。
隐私说明
本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。