JSON 工具

TOML 转 JSON先核对日期和数值,再导出配置

示例包含普通表、重复的服务器条目和大整数。日期输出为字符串;超安全范围整数默认也使用字符串。

TOML 转 JSON

JSON 转 TOML

TOML 输入

在当前浏览器中处理,不上传或保存输入。

JSON 结果

输出选项

类型映射预览

结果已过期,暂时无法导出。

TOML 转 JSON 适合将配置交给接口、测试夹具或只读取 JSON 的脚本。表头的作用域会解析为对象层级,双方括号 [[table]] 表头会形成有顺序的对象数组,不需要手动拼接大括号。

进行 TOML 配置转换时,语法正确与应用能否接受是两件要分别核对的事。这里转换数据结构,不推断 Cargo 或 Poetry 所需字段,也不执行配置中的依赖。

为什么使用这个 TOML 转 JSON 工具

看清每个表对应的对象

TOML 转 JSON 先解析表的父子关系,再生成结果。[[servers]] 之后的子表仍属于当前服务器;带引号的 "api.version" 保持一个键,不会误变成多层对象。

命名表转换为嵌套对象,两组重复表头转换为按原顺序排列的两个对象。

识别类型变化的位置

预览分别列出普通数值、大整数转字符串、日期转字符串与替换得到的 null。借助 JSON Pointer 可以定位字段;即使结果很长,也能先看计数确认哪些类型发生了变化。

日历值和长整数标识分别进入 JSON 文档中带引号的字符串字段。

先选接收方能理解的数值策略

01

决定标识符是否可以是字符串

默认把超过 ±9007199254740991 的整数写成十进制字符串。如果接收端要求数值类型,请选拒绝转换,由你决定如何调整字段。超出有符号 64 位范围的整数无论如何都会被拒绝。

02

别把未知数值直接当成空值

TOML 的 inf 和 nan 没有对应的 JSON 数字。默认拒绝会保留决策机会;明确选择 null 后,非有限数以及溢出得到的无穷大会变为空值,预览计数会显示替换数量。

03

用更新状态判断结果能否导出

自动模式等待输入停止 350 毫秒。关闭后可用转换按钮或 Ctrl/Cmd+Enter;输入与选项一改,旧结果立即过期。预览每次追加 50 项,最多展示 500 项,复制下载仍包含完整结果。

配置结构与标量的具体映射

保留表数组中的父子关系

普通表和点分键映射为嵌套对象;表数组映射为 JSON 对象数组。子表附着于当前数组元素,列表顺序不变。空表输出 {},空数组输出 [],包含不同类型的混合数组保持混合。

整数先精确解析再决定类型

解析时每个整数都使用 BigInt,再按安全范围决定输出数字还是字符串。十六、八、二进制以及下划线分隔形式统一成十进制;大整数成为字符串时,其每一位数字不会经过浮点舍入。

区分四类日期时间

带偏移的日期时间保留原偏移;本地日期时间不补时区,纯日期和纯时间也不互相补齐。含时间的 ISO 字符串精度固定到毫秒,多余的小数秒会截断,不能用来保留纳秒级时间戳。

语法位置与字段路径分别报告

语法错误显示解析器返回的行、列并高亮输入行。整数范围和非有限数策略错误显示 JSON Pointer。路径把 / 编成 ~1,把 ~ 编成 ~0,因此带特殊字符的字段名也能定位。

这些变化与限制需要提前知道

解析器不是完整日历校验器
引擎为 smol-toml 1.8.0,目标规范为 TOML 1.1。它可能把非法日期 2023-02-30 归一化为 2023-03-02,也不会拒绝所有非法 Unicode 序列。请另行验证需要严格合规的日期或字符。
浮点值仍受精度限制
浮点使用 IEEE 754 数值,可能舍入或下溢成 0;1.0 输出 1,负零输出 0。无穷大、nan 或浮点溢出按照所选策略报错或变成 null,不承诺原始数值词法完整往返。
不会保留原配置写法
注释、空白、引号形式、进制与数字拼写会消失,键顺序也不作保证。JSON 没有日期类型,大整数默认变为字符串;接收端须约定如何读取这些值,结构转换并非完全无损。
只处理一个有上限的文本
限制为输入 500,000 字符、深度 100、节点 50,000、输出 2,000,000 字符。没有文件上传、远程地址读取、批处理或保存历史。只有注释的文档可以转换为 {}。
不替你修复或迁移应用配置
重复键和语法错误直接报错,不删字段、不排序,也不验证 Cargo 或 Poetry 的业务结构。反向工具链接只打开另一页,不会自动传递原输入或当前结果。

TOML 转 JSON 常见问题

表数组 [[x]] 怎么映射?

普通 [x] 成为对象,重复的 [[x]] 成为对象数组。TOML 转 JSON 保留数组条目顺序,其后的子表属于当前条目,而不是独立追加到根对象。并非所有含多个键的表都会变成数组。

TOML 的日期会转成什么?

日期与时间变为字符串。本地形式仍不带时区,带偏移形式保留原偏移。含时间的值输出到毫秒,更细小数秒截断;部分不合法日期会被解析器归一化,因此成功转换不代表严格日历验证通过。

为什么提示重复键错误?

TOML 同一个作用域不能重复定义同一个键,点分键与后续表定义也可能冲突。请按输入错误行列检查前面的定义。本工具不会静默保留最后一项,也不会自动重命名字段。

有哪些 JSON 输出样式?

可以选两空格、四空格或紧凑输出,三者只改变空白。TOML 在线转换结果始终是 JSON,结构表只显示前 500 个节点的限制不会截断复制或下载内容。

inf 和 nan 怎么转换?

默认拒绝并报告受影响的字段路径。只有明确选择 null 策略,非有限值才会成为 JSON 空值。数组元素和对象键不会因此被删除,替换数量可在类型计数中核对。

遇到与预期不符的配置结果?

核对下一份配置的输出类型

用 TOML 转 JSON 先检查示例里的日期、大整数和服务器数组,再处理自己的配置内容。