TOML 转 JSON 转换器:Cargo.toml、pyproject.toml 与 Rust 配置
在浏览器里把 Cargo.toml、pyproject.toml 等 TOML 配置读成 JSON,也能把 JSON 对象写回 TOML 表。日期时间、数组表和点号表由解析器处理;注释、键顺序和 null 不会保留。
这个 TOML ↔ JSON 转换器的实际行为
面向清单文件的解析
粘贴 Cargo.toml 或 pyproject.toml,嵌套表和 [[bin]] / [[bench]] 条目会变成 JSON 对象与数组。
数组表双向可用
[[products]] 会变成对象数组;结构一致的 JSON 对象数组也会写回成 [[table]] 块,数组里的数组保持内联形式。
日期时间解析成 Date 对象
TOML 的日期时间、日期和时间会解析成 JavaScript Date,JSON 里显示为 1979-05-27T07:32:00.000Z 这类 ISO 形式。把这份 JSON 转回 TOML 时写出的是带引号的字符串,不是原生 TOML 日期。
嵌套表和点号表会重组
[tool.poetry]、[a.b] 会变成嵌套对象;标量键先输出、子表后输出,所以原始键顺序不会保留。
本地转换,可读取文件
可选择 .toml / .json 文件或直接粘贴,结果可下载。不上传,也没有缩进或排序选项。
TOML ↔ JSON 转换常见问题
JSON 转 TOML 支持 null 吗?
不支持。TOML 没有 null 类型,序列化时值为 null 的键会被静默丢弃,数组里的 null 元素也会消失。转换前请删除或替换 null,否则数据会在没有报错的情况下丢失。
日期和时间怎么处理?
TOML → JSON 会把日期时间、本地日期和本地时间解析成 Date,再显示为 ISO 形式:1979-05-27T07:32:00.000Z、1979-05-27、07:32:00.000。反向转换时,JSON 里的这些字符串只是普通文本,会输出成带引号的值,不会变回原生 TOML 日期;只有解析产生的真实 Date 对象才会不加引号输出。07:32 这种缺秒的写法会报 Incomplete time,必须写成 07:32:00。
注释和键顺序会保留吗?
不会。解析时注释和空行被丢弃,也不会重新生成;键顺序同样会变,标量键写在前面,子表写在后面。重复键会直接报错 Can't redefine existing key。
数组表怎么表示?
[[products]] 会变成 JSON 对象数组;反向转换时,对象数组会写成 [[products]] 块,数组里的数组保持内联数组。JSON 根节点必须是对象,根是数组会报 Can only stringify objects, not array。
为什么我的 JSON 数组报 Array values can't have mixed types?
这个解析器要求 TOML 数组元素类型一致(TOML 0.5 规则)。数字和字符串混在一起、对象和标量混在一起都会报错。请拆成多个数组,或改用表结构。
大整数、NaN 和空值怎么输出?
超过 2^53 的整数会丢精度,并按 TOML 规则写成下划线分隔形式,例如 12_345_678_901_234_567_000。NaN 和 Infinity 输出为 nan / inf。空数组写成 [ ],空对象写成 { },undefined 键会被跳过。
文件会上传吗?出错了怎么办?
全部在浏览器里完成,不上传文件。没有配置大小上限,但转换是同步执行,几 MB 的清单也可能让页面卡住。TOML 解析失败时左侧标红并弹出错误提示,JSON 无效时右侧标红,两个方向都不会输出部分结果。

