TOML

TOML 与 JSON 转换器

双向转换 TOML 1.1 与 JSON,明确处理数值、日期和 null

数据格式
🔒 100% 本地运行 — 你的数据不会离开当前页面
由 Evan 维护•最近更新:2026年9月30日

使用 TOML 1.1 语法,支持嵌套表、表数组、多行字符串和混合类型数组。日期时间输出为 ISO 风格字符串,保留本地日期/时间种类和原偏移,精度截断到毫秒,不支持 :60 闰秒。JSON 转 TOML 要求对象根,任何位置的 null 都报错,嵌套对象输出为内联表;日期样式字符串仍是字符串。

输入 ≤2 MiB,输出和名称映射各 ≤8 MiB,深度 ≤128,值总数 ≤100000,键或生成路径 ≤8192 字符,数字文本 ≤256 字符。拒绝重复键、名称冲突、负零、非有限数、NUL 和未配对 Unicode 代理项。JSON 数字须能等值回写,整数限 ±9007199254740991。

配置在当前页面本地处理,不上传内容、不保存输入草稿;统计事件不包含键名、值或转换结果。复制或下载后,请按目标应用的实际配置规则复核。

工具说明

TOML 与 JSON 转换支持 TOML 1.1 嵌套表、点号键、表数组、多行字符串、内联表和混合类型数组。默认将大整数输出为精确十进制字符串,关闭该选项后会拒绝大整数。非有限数、负零、不安全浮点数和不可能的日历日期都会报错。日期输出为 ISO 风格字符串,保留本地日期/时间种类和原偏移,小数秒按 TOML 允许的方式截断到毫秒。反向转换要求严格 JSON 对象,在任意深度遇到 null 都报错;嵌套对象写为内联表,日期样式字符串仍为字符串。注释与排版不保留,TOML 日期或大整数变成 JSON 字符串后,不会自动恢复原类型。转换在当前页面本地完成,不上传配置、不保存输入草稿,统计事件不包含键名和值。复制和下载包含当前完整结果,页面预览有长度上限。输入限 2 MiB、深度 128、值总数 100000、键或生成路径 8192 字符,输出和名称映射各限 8 MiB;数字类型文本限 256 字符。不支持 NUL 和未配对 Unicode 代理项。 此转换器不支持 :60 闰秒。

场景配方

01

把带日期的任务配置迁移到 JSON 流程

目标:精确保留大整数任务 ID,并核对日期类型转换。

  1. 输入示例 TOML,保持开启“大整数输出为字符串”。
  2. 转换后确认 id="9007199254740993"、when="2024-02-29T07:32:00.123+08:00" 和混合 values 数组,并注意最后三位小数秒已截断。
  3. 把 JSON 粘贴到 JSON 转 TOML 模式,核对 id 和 when 仍为字符串;只有确认消费应用需要的类型后,才恢复 TOML 原生类型。

结果:得到精确的大 ID 文本、规则明确的毫秒日期表示,并明确核对反向转换的类型变化。

失败门诊(高频踩坑)

null 字段或非有限 TOML 数字导致转换中止

原因:TOML 没有 null,JSON 不能保留 NaN 或无穷大。静默省略对象字段或将数字变成 null 都会改变配置。

修复:JSON 转 TOML 前明确移除或替换 null;异常数值需要事先约定字符串表示,工具不会自行选取替代值。

日期丢失毫秒之后的小数位,或转回后仍带引号

原因:解析器保留毫秒精度,这是 TOML 允许的行为。JSON 没有日期或 BigInt 类型,这些值会变为字符串,反向转换没有可靠类型标记。

修复:需要精确日期写法或原生类型时保留原始 TOML,恢复类型前核对源配置约束。混合类型数组是合法 TOML,不应仅因元素类型不同而删除。

生产可用片段

大整数与带偏移日期的转换结果

text

TOML:
id = 9007199254740993
when = 2024-02-29T07:32:00.123456+08:00
values = [1, "two", true]

JSON:
{"id":"9007199254740993","when":"2024-02-29T07:32:00.123+08:00","values":[1,"two",true]}

JSON 转 TOML:
"id" = "9007199254740993"
"when" = "2024-02-29T07:32:00.123+08:00"
"values" = [1, "two", true]

常见问题

保留 TOML 1.1 特性并支持混合数组吗?

支持嵌套表、表数组、点号与引号键、多行字符串、多行内联表、简写本地时间及 TOML 1.1 转义。混合类型数组合法;TOML 1.0 读取器可能拒绝仅在 1.1 中合法的语法。

日期和小数秒如何表示?

日期时间转成 ISO 风格 JSON 字符串:本地日期只保留日期,本地时间只保留时间,本地日期时间没有偏移,带偏移的日期时间保留原偏移。无效日历日期会报错。超过毫秒的小数位会截断,这是 TOML 允许的行为;原小数精度与 TOML 类型标记不保留。 不支持 :60 闰秒。

大整数、小数、无穷大和 NaN 如何处理?

默认把 TOML 大整数输出为精确十进制字符串,关闭选项后报错。JSON 数字必须能按相同十进制值回写,整数必须安全。NaN、无穷大、负零、舍入、上溢和下溢都报错。数字类型文本最多 256 字符;高精度十进制数据应明确使用字符串。

任意 JSON 都能转换为 TOML 吗?

根值必须是对象,转换前拒绝解码后重复的键和不安全数字。TOML 没有 null,因此对象或数组任何深度的 null 都报错。支持空对象、空数组、混合数组和特殊键;空根对象对应有效的空 TOML 文档。

JSON 转回 TOML 会恢复日期、整数类型或注释吗?

不会。JSON 字符串仍写为 TOML 字符串,包括日期样式字符串和由大整数转换的十进制字符串。嵌套对象写为内联表。不会重建注释、源排版或原数值写法;应检查接收应用期望的类型。

会保存或上传配置吗,有哪些限制?

转换在当前页面本地完成,不上传配置、不保存输入草稿,统计事件不包含键名和值。复制和下载包含当前完整结果,页面预览有长度上限。输入限 2 MiB、深度 128、值总数 100000、键或生成路径 8192 字符,输出和名称映射各限 8 MiB;数字类型文本限 256 字符。不支持 NUL 和未配对 Unicode 代理项。

继续浏览