ZeroTool Workbench
TOML JSON 转换器
即时进行 TOML 与 JSON 格式互转。支持表格、数组、内联表和所有 TOML 数据类型。免费在线工具,纯浏览器端运行,无需上传。
使用方法
- TOML → JSON:将 TOML 粘贴到左侧面板,点击 TOML → JSON 按钮。
- JSON → TOML:将 JSON 粘贴到右侧面板,点击 JSON → TOML 按钮。
- 可使用 Ctrl+Enter(Mac 上为 Cmd+Enter)快捷键直接转换当前编辑面板的内容。
- 点击面板上的 Copy 按钮,将结果复制到剪贴板。
转换示例
简单表格
输入 TOML:
[database]
host = “localhost”
port = 5432
enabled = true
输出 JSON 包含嵌套的 database 对象,含 host、port 和 enabled 字段。
表格数组
TOML 表格数组(使用双方括号 [[table]] 语法)会转换为 JSON 对象数组。例如,两个 [[fruits]] 表格块转换后得到包含两个对象的 fruits 数组。
TOML 与 JSON 对比
TOML(Tom’s Obvious Minimal Language)是一种以语义明确、易于阅读著称的配置文件格式,广泛用于 Rust 项目(Cargo.toml)、Hugo 等工具。
JSON 是 API 和 Web 服务中最常用的数据交换格式。
本工具在两者之间转换,两种类型系统的差异见下文「转换时会变的地方」。
转换时会变的地方
TOML 有 JSON 没有的类型,反过来也一样。下面的输入:
# build settings
title = "x"
created = 2026-09-29T10:00:00Z
day = 2026-09-29
ratio = inf
[server]
port = 8080
转换结果是:
{
"title": "x",
"created": "2026-09-29T10:00:00.000Z",
"day": "2026-09-29",
"ratio": null,
"server": {
"port": 8080
}
}
- 注释会丢失。 JSON 没有注释。
- 日期时间变成字符串。 带时区偏移的日期时间会补上毫秒(
.000Z)。再转回 TOML 时得到的是带引号的字符串,不再是 TOML 日期。 inf和nan变成null。 JSON 没有无穷大和 NaN。- 超过 2^53 − 1 的整数会报错。 TOML 1.0 允许 64 位整数,但解析器不会四舍五入,而是报错
integer value cannot be represented losslessly。 - 转 TOML 时 JSON 的
null会被丢弃。 TOML 没有 null,{"a": null}会得到空文档,不报错。请先替换 null 值。
FAQ
支持哪些 TOML 特性?
通过 smol-toml 库支持所有标准 TOML v1.0 特性:表格、表格数组、内联表、点分键、多行字符串、整数、浮点数、布尔值、日期时间和数组。
JSON 对象数组能转换为 TOML 吗?
可以。JSON 对象数组会转换为 TOML 的表格数组([[table.name]] 语法),基本类型数组转换为 TOML 内联数组。
JSON 中的 null 值如何处理?
TOML 没有 null 类型。值为 null 的键会在 TOML 结果中被直接省略,不会报错,所以转换前请先替换 null 值。
数据会发送到服务器吗?
不会。所有转换完全在浏览器中运行,数据不会离开您的设备。