DevToolPal
简

TOML 与 JSON 互转

把 TOML 转成 JSON,或把 JSON 转成 TOML。支持表、表数组、内联表和日期,出错时精确指出位置。

本地处理,不上传

选项

方向
JSON 缩进

输入

0 字符 · 0 B

输出

0 字符 · 0 B

功能简介

这个工具可以把 TOML 转成 JSON,也可以把 JSON 转回 TOML。TOML 是 Rust 的 Cargo.toml、Python 的 pyproject.toml,以及 Hugo、Netlify、Deno 等工具使用的配置格式,适合人工编辑;但大多数脚本、接口和校验工具需要 JSON。转换之后,你可以用 JSON 工具检查配置、把配置交给程序处理,或者把 JSON 数据整理成一份清晰的配置文件。

使用方法

  1. 把 TOML 粘贴到输入框,或把 .toml 文件拖进去,也可以点「示例」。
  2. 输入的同时就会显示 JSON。缩进可以选 2 个或 4 个空格。
  3. 把「方向」切换到 JSON → TOML 即可反向转换。JSON 的最外层必须是对象,因为 TOML 文档本身就是一个表。
  4. 复制或下载结果。

TOML 写错时,错误提示会给出行号和列号,点击即可跳到出错位置。常见错误有:字符串缺少结尾引号、同一个键或表定义了两次、= 右边的字符串没有加引号。

示例

TOML 输入:

[server]
host = "0.0.0.0"
port = 8080

[[users]]
name = "Alice"
roles = ["admin", "editor"]

JSON 输出:

{
  "server": { "host": "0.0.0.0", "port": 8080 },
  "users": [{ "name": "Alice", "roles": ["admin", "editor"] }]
}

[server] 变成嵌套对象,每个 [[users]] 块都会往 users 数组里加一个元素。

类型对应关系

  • 字符串、整数、浮点数、布尔值直接对应。超出 JavaScript 安全范围的大整数会丢失精度,ID 之类的值建议用字符串。
  • 数组对应数组,表和内联表对应对象。
  • 带时区的日期时间、本地日期时间、本地日期、本地时间都会变成 ISO 8601 字符串。
  • 反向转换时,null 在 TOML 里没有对应值,会报错并给出路径。嵌套对象会变成 [table] 段落,对象数组会变成 [[array]] 段落。

常见问题

› TOML 文件会被上传吗?

不会。解析和转换全部在浏览器里完成,Cargo 清单、pyproject 文件和带密钥的配置都不会离开你的设备。

› 支持哪个版本的 TOML?

支持 TOML 1.0,包括表、表数组、内联表、多行字符串、日期时间,以及十六进制、八进制、二进制整数。

› TOML 里的日期转成 JSON 是什么样?

JSON 没有日期类型,所以日期和时间会变成 ISO 8601 字符串。例如 2026-10-08 仍是 "2026-10-08",1979-05-27T07:32:00Z 会变成 "1979-05-27T07:32:00.000Z"。

› JSON 转 TOML 为什么遇到 null 会报错?

TOML 没有 null 值。工具会停下并告诉你第一个 null 所在的路径(比如 database.password),你可以删掉这个键或给它一个值。

› 注释会保留吗?

不会。TOML 的注释在转换时会被丢弃,因为 JSON 不能表示注释;JSON 本身也没有注释可带到 TOML。