TOML 转换器
把 TOML 转成 JSON、YAML、XML、JavaScript 对象字面量或 PHP 数组。TOML 的表(table,可理解为对象或字典)、表数组([[x]],转换后是数组)、内联表和点号键都会整理成常见的嵌套结构,所以 Cargo.toml、pyproject.toml、Hugo 与 Netlify 配置、wrangler.toml、ruff 与 Poetry 设置这类 TOML 配置,粘贴一次就能读成 JSON 或 YAML。工具会明确标出转换时最容易被忽略的两类变化:TOML 的日期时间在 JSON 里没有对应的原生类型,会输出为 ISO-8601 字符串;超过 Number.MAX_SAFE_INTEGER 的 64 位整数会保留为精确字符串,避免在不知情的情况下丢失精度。解析出错时会带上行号、列号和附近源码。解析、转换和复制全部在当前浏览器标签页内完成,不上传、不代理,也不会在服务端记录。
- 一份输入,同时产出五种目标——JSON、YAML、XML、JavaScript 对象字面量、PHP 数组——每种都有各自的选项
- 表会整理成对象或字典,表数组([[servers]])会整理成 JSON 与 YAML 都能理解的普通数组
- TOML 日期时间会转成规范的 ISO-8601 字符串,并标出哪些值从日期类型变成了字符串
- 超过 Number.MAX_SAFE_INTEGER 的大整数保留为精确字符串而非四舍五入,并逐个给出提示
- 完全本地处理——不上传、不埋点——适合生产配置、敏感样例数据和迁移草稿
功能简介
这是一个专门处理 TOML 输入的转换工具。TOML 表(对象或字典)的嵌套、表数组(数组)、内联表、点号键、原生日期时间和 64 位整数都会在解析时处理好,输出可以直接交给后续的 CI 流水线、JSON Schema 校验器、代码生成器,或只接受 JSON 的脚本,不需要再手动整理一遍。
- 01
开箱即用的五种目标格式
TOML 转 JSON、YAML、XML、JavaScript 对象字面量和 PHP 数组。JSON 与 YAML 提供缩进大小和按字母排序键;XML 可设置根名、列表项名、声明和美化;JS 对象字面量保留带引号的键和正确转义;PHP 数组输出完整的 <?php return [...]; 文件。
- 02
TOML 表会变成对象,表数组会变成数组
[section]、[nested.section] 和 [[array.of.tables]] 在解析时会变成普通的嵌套对象或字典与数组,所以 Cargo.toml 或 pyproject.toml 能得到构建脚本、Linter 或校验器期望的 JSON 结构,不必手动重排 TOML 的表头。
- 03
内联表与点号键展开
内联表({ x = 1, y = 2 })和点号键(a.b.c = true)会展开成与完整小节写法一致的嵌套结构。因此,只是写法不同的两个 TOML 文件,可以转出完全相同的 JSON。
- 04
日期时间处理透明可见
TOML 的带偏移日期时间、本地日期时间、本地日期和本地时间会转成规范的 ISO-8601 字符串,这是 JSON、YAML、XML 中最可靠的表示方式。检查面板会逐个列出这些值,让你清楚看到哪些日期时间已经变成字符串。
- 05
保住 64 位整数精度
TOML 允许有符号 64 位整数;JavaScript 数字在 2^53 之后就不再精确。超出该范围的值会保留为精确字符串而非四舍五入,并逐个标注,方便你决定后续流程需要的是字符串还是 BigInt。
- 06
完全在浏览器内运行
解析、转换、检查和复制都在本页完成。你的 TOML 不会通过任何请求离开本页去往服务器、CDN 或第三方分析平台——适合生产配置、敏感样例数据和迁移草稿。
如何使用
流程很简单:粘贴 TOML、选择格式、查看检查面板、复制结果。
- 01
把 TOML 粘贴进左侧输入面板。粘贴后会立即解析,检查面板会显示 TOML 表(对象/字典)与键的数量、表数组(数组)、日期时间值,以及大整数相关的提示。
- 02
在底部选择目标:JSON、YAML、XML、JavaScript 对象或 PHP 数组。每种格式都有各自的选项——缩进大小、键排序、XML 根名——会实时更新输出。
- 03
阅读检查面板。日期时间变成字符串、整数超出安全范围时都会被标注,但绝不阻断转换;它们标出 JSON 或 YAML 表示与原生 TOML 类型不同的地方。
- 04
面对较长的配置文件时切换到全屏。输入和输出两栏都会获得更多空间,编辑器保留语法高亮、折叠和复制控件。
- 05
点击复制,把输出粘进你的 IDE、片段管理器、CI 任务定义或 API 客户端(Postman、Insomnia、Bruno)继续后续工作。
功能说明
日常处理 TOML 时反复遇到的麻烦,这里默认都替你处理好,不必再串联多个外部工具才能得到干净的转换结果。
- 解析遵循 TOML 1.0 规范,因此 TOML 表(对象/字典)、表数组(数组)、内联表和点号键的解析结果与 Cargo、Poetry、Hugo 读到的完全一致。
- JSON 与 YAML 输出保留键顺序,并可选按字母排序,便于稳定的 git diff、代码评审和 JSON Schema 校验。
- 日期时间会变成 ISO-8601 字符串,这是 JSON 解析器、YAML 加载器和 JavaScript Date 都容易接收的表示方式。
- XML 接受自定义根名与项名、声明和美化,便于与生产环境中已有的结构顺畅对齐。
- JavaScript 对象与 PHP 数组输出保留嵌套、转义和布尔字面量,结果可直接用于配置加载器、测试数据或种子脚本。
- 检查面板汇总结构——TOML 表(对象/字典)数量、键数、表数组(数组)——让一个陌生的 TOML 文件几秒内就变得可读。
- 大整数与日期时间提示会就地显示,准确标出哪些位置在转换回 TOML 时需要使用字符串或带类型的值,才能保留原来的含义。
- 一切都在浏览器本地运行——没有 SaaS 后端——所以在飞机上、只有 VPN 的网络里或企业代理后仍能照常工作。
适合哪些场景
只要源头是 TOML,下面这些日常任务都可以少一次手动复制粘贴或逐行重写。
-
读取 Cargo.toml 与 Rust 工作区清单
把 Cargo.toml——依赖、features、workspace 成员和 [[bin]] 目标——转成 JSON,于是构建脚本、依赖审计或看板无需引入 TOML 解析器,就能以编程方式读取这份清单。
-
检查 pyproject.toml 与 Python 工具配置
pyproject.toml 把 Poetry、setuptools、ruff、black 和 mypy 的设置塞进一个文件。转成 JSON 或 YAML 能看清每个工具配置区块解析后的对象结构,也便于跨仓库比对配置。
-
把静态站点与边缘配置对接到工具链
Hugo config.toml、Netlify netlify.toml 和 Cloudflare wrangler.toml 都以 TOML 书写,却常常要交给只接受 JSON 的脚本、CI 步骤或看板读取。一次转换就能继续以 TOML 作为配置来源,避免多份配置彼此偏离。
-
在 TOML、YAML 与 JSON 之间迁移配置
要把项目从 TOML 迁到基于 YAML 或 JSON 的配置?先看转换后的输出,再手工细调。结构化的差异能抓出逐行手动重敲时引入的笔误。
-
把配置交给 JSON Schema 校验器
很多校验器和 IDE 集成只认 JSON。把 TOML 转成 JSON,用 AJV 或编辑器的 schema 工具跑一遍,在上线前确认配置满足其 schema。
-
让后端配置与前端测试数据同步
后端常把配置放在 TOML,而前端的 Jest、Vitest 和 Storybook 测试想要 JSON 或 JS 对象。转换后粘贴即可——不需要专门写一套转换脚本。
-
迁移前审计日期时间与整数字段
TOML 的日期时间和 64 位整数正是配置搬到 JSON 时含义会变的那些值。检查面板会预先列出它们,方便你决定哪些字段需要在目标里改成带引号的字符串。
-
新人上手与代码评审
一份带着深层 [nested.tables] 和重复 [[arrays]] 的密集 TOML 文件很难一眼看懂。转成带缩进的 JSON 或 YAML 后,区块关系会变成更容易讲解和评审的视觉层级。
延伸阅读
如果你手头的配置最初是用 YAML 写的——Kubernetes 清单、GitHub Actions 工作流、Docker Compose 文件、OpenAPI 规范——而你想把它转成 JSON、TOML、XML、JavaScript 对象字面量或 PHP 数组,可以使用YAML 转换器 ,它会把多文档 YAML 合并成数组,并在转换前展开 anchor 与合并键。而当源头是 JSON 而非 TOML——一段压缩的接口响应、Terraform plan 的 JSON 视图、某个构建工具的输出——你需要反方向转回 YAML、TOML、XML、CSV、JS 对象或 PHP 数组文件时,请用JSON 转换器 ,其中每种目标都带有各自的选项——YAML 缩进与键排序、XML 根名与属性模式、CSV 分隔符与表头行、TOML 键排序。如果 JSON 本身需要先整理一下——美化、折叠深层节点、定位语法错误,或在决定转成哪种目标前查看键的统计——可以先经过JSON 格式化 ,它支持层级折叠、错误行高亮、键搜索和深度统计,同样保证数据不上传。这样从原始配置到经过校验、便于评审的输出,整条流程都不离开你的浏览器。
使用建议
TOML 刻意追求显式,但当目标格式在类型上不像 TOML 那么严格时,几个小习惯能让转换保持可预期。
- 先想清楚日期时间该如何保留下来:是作为 ISO-8601 字符串(本工具默认),还是作为由加载器重新解析的带类型值。把这个选择记录下来,方便以后准确转换回 TOML。
- 在任何会被重新读取的 JSON 里,把 64 位整数——Snowflake ID、大时间戳、数据库主键——当作字符串处理,因为 JavaScript 数字在 2^53 之后会丢精度。检查面板会标出高风险值。
- 记住 TOML 没有 null。以后往反方向转换时,JSON 的 null 在 TOML 里没有对应,所以可选字段应当直接省略该键,而不是写成显式的 null。
- 把 TOML 转成 JSON 后,用 json-diff 与上一版比对,在改动进入生产前抓出意外变化的字段。
- 任何供人编辑的内容,优先用表数组([[x]],转换后是数组)而不是深层嵌套的内联表——它们会转成相同的 JSON,但在 TOML 源码里可读性高得多。
- 在一个仓库内保持缩进大小与键排序设置一致,让转换输出产生稳定、便于评审的 diff。
- 当配置要交给 JSON Schema 校验器时,先转成 JSON 再在那里校验;TOML 自身的语法检查并不会执行你 schema 里的字段规则。
- 面向 XML 目标时,先设好有意义的根名和项名——通用的 root/item 标签会让后续流程更难使用这些输出。
边界与注意事项
了解工具「不做什么」,能避免你把它当成完整的配置 IDE、schema 校验器或迁移流水线。
- 不做业务级 schema 校验:Cargo 清单规则、pyproject 字段约束和 JSON Schema 都不在范围内——解析成功不等于语义正确。
- TOML 注释不会保留;JSON、YAML、XML 输出会丢掉 # 之后的内容。若注释必须保留,请把关键信息移到专门字段或外部文档里。
- 面向 JSON、YAML、XML 目标时,日期时间和 64 位整数会被转成字符串——忠实但并非类型完全一致的表示。检查面板会标出每一个这样的值。
- 工具从不改写你的源文件。你的改动始终回到原始文档里,让版本控制里的那份文件继续作为唯一来源。
- 超大文件可能拖慢浏览器,但处理始终在本地——不会截断也不会上传。处理巨型文档前,先用有代表性的片段验证选项。
- 没有版本控制、协作、评论或 Git 集成:工具面向一次性的转换与检查。请把它与你的 Git 流程配合使用。
- 某些 TOML 转 XML 会遇到结构不匹配,例如混合类型数组,或 XML 无法自然表示为属性的值。工具会把这些冲突显示出来,而不是给出容易误解的输出。
常见问题
常见问题围绕表数组(数组)、日期时间、大整数,以及数据是否离开浏览器。
表数组([[x]])是怎么转换的?
每个 [[name]] 块会按源码顺序成为该 name 键下 JSON 数组的一个元素。所以重复三次的 [[servers]] 会转成 "servers": [ {…}, {…}, {…} ]。YAML、JS 对象和 PHP 数组目标遵循同样的映射,重复配置块不会有任何丢失。
为什么我的 TOML 日期在 JSON 里变成了字符串?
JSON、YAML 和 XML 没有原生的日期时间类型,所以 TOML 的带偏移日期时间、本地日期时间、本地日期和本地时间会输出为规范的 ISO-8601 字符串,这是这些格式最适合往返处理的表示方式。检查面板会列出每个被转换的日期值,让变化清楚可见。需要真正的日期时,你的 JSON 解析器或 JavaScript Date 可以把字符串重新解析回来。
超大整数会怎样?
TOML 允许有符号 64 位整数,但 JavaScript 数字在 2^53 - 1 之后就不再精确。工具不会直接四舍五入 Snowflake ID 或大时间戳,而是把超范围整数保留为精确字符串,并在检查面板里逐个标注。若后续流程需要数值类型,请对该字符串使用支持 BigInt 的 JSON 解析器。
内联表与点号键的转换方式一样吗?
一样。{ x = 1 } 内联表和 a.b = 1 点号键会展开成与整段 [a] 小节相同的嵌套对象,因此仅书写风格不同的两个 TOML 文件会转出完全相同的 JSON、YAML 或 XML 输出。
我能把 JSON 或 YAML 转回 TOML 吗?
可以,但要用另外两个工具:JSON 转换器和 YAML 转换器都提供 TOML 目标。TOML 要求顶层是对象且没有 null 类型,所以根为数组或值为 null 无法表示——那两个工具会清晰地报告冲突,而不是输出非法 TOML。
为什么输出默认保留键顺序?
保留原始的 TOML 区块与键顺序,能让转换后的 JSON 或 YAML 逐行对照 TOML 源码。当你转而需要一个规范顺序以获得稳定的 git diff 或做 schema 校验时,在选项行开启按字母排序键即可。
粘贴的数据会被上传吗?
不会。解析、转换、检查和复制都在浏览器里完成。没有任何请求会把你的 TOML 带出本页去往服务器、CDN 或分析平台。关掉标签页什么也不留——生产配置、敏感样例数据和迁移草稿都同样安全。
可以离线使用吗?
页面一旦加载完成,浏览器就已经拥有解析与转换所需的全部资源。工具在无网络时仍能工作,这在飞机上、严格的企业代理后或隔离网络中都很有用。
更多相关工具
继续处理数据:把 YAML 或 JSON 转成其他格式、整理 JSON 结构,或并排比对两份输出。下面这些工具可以接在同一条流程里使用。