ToolConvoyToolConvoyv2.6
DATA

TOML 工具集 — TOML 与 JSON、YAML、INI、.env 互转并格式化

一站式 TOML 工具集:TOML 与 JSON、YAML、INI、.env 互转,并提供可配置缩进的格式化器 —— 完全在浏览器中运行。

● 本地运行 · 零拷贝流水线页面加载以来工具发出的网络请求:0 次
DEV

TOML Tools

Convert TOML to/from JSON, YAML, INI, .env — or just format it. Runs in your browser.

● 本地运行 · 在您的标签页中生成页面加载以来工具发出的网络请求:0 次
Loading…
广告
广告

TOML(Tom’s Obvious, Minimal Language)是过去十年中赢得开发者工具生态的配置格式。Rust 的 Cargo 用 TOML 写项目清单,Python 的 pyproject.toml 是构建系统、linter 和 formatter 配置的标准位置,Go、Zig、Julia 项目也都推荐使用 TOML 作为配置文件。这个格式的设计原则 —— 一目了然、语法极简、类型显式 —— 让它成为手写配置文件的正确选择:作者是看重清晰胜过简洁的开发者。JSON 适合机器之间的数据交换,YAML 拿下了 DevOps 配置之争,但放在仓库根目录、被每位贡献者编辑的那份配置文件,TOML 才是答案。

TOML 工具集页是面向 TOML 生态的多合一工具:一个能在 TOML 与 JSON、YAML、INI、.env 之间双向转换的转换器,外加一个格式化器,可以用可配置的缩进和键排序美化已有 TOML。转换路径覆盖了开发者拿起 TOML 工具最常见的原因:把基于 JSON 的配置迁移到 Rust 项目的 TOML,把 TOML 文件转成 YAML 喂给期望 YAML 输入的 CI/CD 流水线,把 TOML 配置扁平化成 .env 注入 Docker 容器,或者把遗留项目的 INI 文件转成 TOML 以接入现代工具链。格式化器产出的 TOML 一致、对 git 友好,与官方参考解析器的 printer 输出完全一致。所有处理都在浏览器中完成。

广告

使用方法

  1. 粘贴或拖入你的 TOML

    拖入一个 .toml 文件或粘贴 TOML 内容。解析器会校验语法,并在报错时给出对应的行号。合法的 TOML 会在转换前以语法高亮的树形视图呈现。

  2. 选择目标格式

    选择一种输出格式 —— JSON、YAML、INI 或 .env。转换过程会保留所有值、注释(前提是目标格式支持)以及表结构。嵌套表会按目标格式的约定,转换为嵌套对象或点号表示法的键。

  3. 或者格式化你的 TOML

    切换到格式化器标签页来美化已有 TOML。可设置缩进宽度、在空格和 Tab 之间切换、按字母顺序排列键,或保留原顺序。格式化后的 TOML 会与 TOML 规范官方测试集的输出进行一致性校验。

常见问题

TOML 与 JSON、YAML 有什么区别?

TOML 由 Tom Preston-Werner(GitHub 联合创始人)于 2013 年设计,是一种配置格式 —— 比 JSON 更易于人类读写(没有花括号,键不需要引号),比 YAML 更没有歧义(没有显著空白、没有 Norway 问题)。它现在是 Rust(Cargo.toml)、Python(pyproject.toml)和 Go 项目的标准配置格式。

转换器会保留 TOML 注释吗?

YAML 和 INI 输出会保留注释(这两种格式原生支持注释)。JSON 没有注释语法,所以注释会在 JSON 输出中丢失。.env 格式支持 `#` 行内注释 —— 在结构允许的情况下,TOML 注释会映射为 .env 注释。

嵌套表在 INI、.env 这类扁平格式中如何转换?

嵌套 TOML 表会被扁平化为点号表示法的键。`[server.database]` 下的 `host = 'localhost'` 在 INI 中变成 `server.database.host = localhost`,在 .env 中变成 `SERVER_DATABASE_HOST=localhost`(大写,点号换成下划线)。表数组(`[[entry]]`)会变成带数字的键。

能从其他格式转回 TOML 吗?

可以 —— 反向转换接受 JSON、YAML、INI 和 .env 输入,并输出 TOML。输出的 TOML 遵循官方风格指南:浅层嵌套使用点号键,深层嵌套使用表头,重复出现的部分使用表数组语法。

限制说明

  • 不提供 schema 校验本工具解析并转换 TOML 语法,但不会针对 schema 校验内容。如需 schema 校验,请使用 `taplo`(Rust)或 `tomllib`(Python 3.11+)配合单独的 schema 定义。
  • 日期/时间类型保真TOML 原生支持 date、time、datetime-local 类型。转换为 JSON(没有 date 类型)时,这些值会变为 ISO 8601 字符串。格式信息会以文本形式保留,但类型区分会丢失。
  • 大文件性能深度嵌套、超过 1 MB 的 TOML 文件在树形视图里渲染会比较慢。转换本身很快,瓶颈在视觉渲染。大文件请使用原始输出标签页。

平台说明

macOS
`taplo` 是 macOS 上的标准 TOML 工具集(`brew install taplo`)。本浏览器工具额外提供 taplo 原生不支持的格式转换(与 YAML、INI、.env 互转)。
Linux
Python 3.11+ 在标准库中自带 `tomllib`。可用 `python3 -c 'import tomllib; print(tomllib.load(open("config.toml", "rb")))'` 把 TOML 解析为 Python 字典。
Web
完全在浏览器中运行。配置文件在本地解析 —— 不会上传任何配置数据。适合在不暴露给第三方 API 的前提下转换内部项目配置。
广告
广告