JSON 工具

JSON 转 TOML让配置层级与类型都看得清

示例包含普通字段、带点号的键和服务器对象数组。切换表布局,对照结果中的分组方式。

JSON 转 TOML

TOML 转 JSON

JSON 输入

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

TOML 结果

输出选项

类型预览

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

JSON 转 TOML 适合把接口或脚本给出的配置对象整理成可阅读的配置文件。这里的转换只改变数据的表示方式,不会替某个框架重命名字段,也不会替你选择缺省值。

例如 "api.version" 应当仍是一个完整键名,而不是两级路径;日期模样的文字也应保持字符串。结果区会引用这些容易混淆的内容,独立解析器再核对数据结构。

为什么在这里做 JSON 转 TOML?

分清字面键与层级路径

JSON 转 TOML 会把嵌套对象写成表,把纯对象数组写成数组表。表头中的每一段键名单独判断是否需要引号,避免把包含点号的原始键误拆成多级对象。

嵌套数据树转换为独立表区块,两个对象对应两张重复记录卡片。

遇到不支持值就停止

数组中出现 null 时,直接指出其 JSON Pointer 和输入位置。不会删除该元素导致后续索引前移,也不会把它换成空字符串。整数越界同样阻止导出,保留业务含义由你决定。

缺失值被突出显示,转换箭头在到达结果文档前被阻断。

先看表示方式,再检查路径

01

对比两种表布局

默认模式先写标量和普通数组,再写子表,保证字段属于正确的表。内联模式把每个根字段放在一个赋值行中;混合数组里的对象始终用内联表表示。

02

按需要切换运行时机

自动转换在停止编辑 350 毫秒后运行。关闭开关后可点转换,或按 Ctrl/Cmd+Enter。输入或布局一变,旧结果立即过期,复制与下载同时禁用。

03

用路径核对要修改的值

类型预览每次增加 50 项,最多查看前 500 个节点,计数包含完整文档。路径中的斜杠写成 ~1,波浪号写成 ~0;错误另显示原始输入的行与列。

配置中的几种真实映射

嵌套数组表归属正确

对象数组的每一项依次输出,它的子表和子数组表跟随当前父项。空对象保留为表或内联对象,空数组保留为 []。数组顺序不变,但不同类型字段的布局顺序可能调整。

长整数不先经过浮点数

有符号 64 位范围内的整数直接使用原始数字文本,包括超过 2⁵³ 的标识符。小数尾零与指数写法保留;整数写法 -0 会输出为 -0.0,以浮点形式保留负号。

字符串不会自动推断类型

空键、中文键及带空格的键按需引用。引号、反斜杠、换行与控制字符转义后写出,"true"、"007" 和日期文字仍是字符串,不会变成布尔值、数字或时间。

导出之前重新解析核对

生成结果使用独立 TOML 解析器读取,整数按 BigInt 核对,逐层比较键、数组长度、类型和字符串内容。输出使用兼容 TOML 1.0 的语法,通过检查才开放导出。

请在转换前了解这些限制

必须由根对象提供字段名
根数组、字符串、数字、布尔值和 null 都不能直接生成文档。若需要包装数组,请自行选择业务字段名。空对象 {} 是例外的正常结果:会生成合法的空 TOML,下载大小为零字节。
严格解析,不修复或删值
注释、尾逗号、JSON5 和解码后重复的键都会报错。任意深度的 null 都会停止处理。这里不提供排序、修剪、自动删空、空字符串替换或默认值填充。
数值和字符有明确边界
整数范围为 -9223372036854775808 到 9223372036854775807。浮点溢出或非零值下溢成零会报错,但普通小数仍可能被接收程序的 64 位浮点读取器舍入。未配对的代理项也会被拒绝。
资源预算不是格式本身的上限
输入最多 500,000 字符、50,000 节点、深度 100,输出最多 2,000,000 字符。预览只显示部分路径,导出仍含完整有效文档。不提供文件导入、URL 获取、批量压缩包或历史保存。
不负责应用配置迁移
修改 package.json 的表示格式并不能得到有效的 Cargo 或 pyproject 配置。字段约束仍由目标应用决定。原始空白、转义拼法和全局键序不保留,JSON TOML 互转也并不在这一页自动完成。

JSON 转 TOML 常见问题

有什么方便的转换方法?

在这个 JSON 转 TOML 在线转换器中输入严格对象,选择表布局,再核对结果。配置比较小的时候可保持自动运行;需要连续修改多个字段时,关闭自动转换,最后再统一执行。

TOML 支持嵌套的对象数组吗?

支持。默认布局把非空且每项都是对象的数组写成 [[表名]],嵌套表会跟随当前父项。混合类型数组里的对象改用内联表,空数组仍保持普通数组形式。

为什么输入必须是对象?

TOML 文档本身是一张由命名字段组成的根表。匿名数组或单个值没有可写入的根键名,因此需要由你先加上合适的外层对象,工具不会擅自起名。

为什么 TOML 没有 null?

它的值类型里没有空值这一项。删除字段、写空字符串和使用默认值含义不同,所以不能自动等同。此处会标出第一个 null 的路径与行列,让你按配置用途修改。

来回转换能完全无损吗?

不能作这种保证。接受的整数保持精确值,字符串与数组结构会核对;小数文本虽然保留,读取器仍可能舍入。格式空白、转义形式和表布局会改变,本页也没有执行反向转换。

发现某种配置没有正确处理?

检查下一份配置

用 JSON 转 TOML 对照示例里的点号键与服务器列表,再处理你自己的配置内容。