跳到主内容
UniKit

TOML 转 YAML

把 TOML 转成 YAML:可选缩进宽度、单/双引号与强制加引号,TOML 的日期会转成 ISO 字符串,非法 TOML 会报出行列并给出统计。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

YAML

TOML 的日期/时间会转成 ISO 字符串;超出 JavaScript 安全整数范围的大整数会以字符串保留精度。

这个工具能做什么

  • 把 Cargo.toml、pyproject.toml、GitHub Actions 之外的各类 TOML 配置换成 Kubernetes、Ansible、Docker Compose 用的 YAML。
  • 处理日期值:TOML 的日期时间会写成带引号的 ISO 字符串,避免 YAML 解析器把它当成时间戳类型后再被时区转换。
  • 保留大整数精度:超出 JavaScript 安全整数范围的数字会以字符串写出,避免末尾几位被浮点数悄悄改掉。
  • 按需调整输出风格:缩进 2–8 空格、单/双引号、强制给所有字符串加引号、按键名排序、关闭自动换行。

示例

输入

title = "UniKit"
version = 1.2
created = 1979-05-27T07:32:00Z

[server]
host = "localhost"
port = 8080
tags = ["toml", "yaml"]

输出

title: UniKit
version: 1.2
created: '1979-05-27T07:32:00Z'
server:
  host: localhost
  port: 8080
  tags:
    - toml
    - yaml

默认 2 空格缩进、单引号风格、行宽不限。日期被写成带引号的字符串,所以 created 不会被 YAML 解析成时间戳;统计栏会显示 1 个日期、9 行、128 字节。

常见问题

和 TOML 转 JSON 有什么区别?

JSON 版输出 JSON 文本,日期同样转 ISO 字符串但用双引号,没有引号风格与排序等 YAML 专用选项;这个版本输出 YAML,可以控制缩进、引号、行宽,并按 YAML 的块序列(- 开头)排版数组。

为什么日期外面要加引号?

YAML 1.1 会把不加引号的 1979-05-27T07:32:00Z 解析成时间戳类型,不同解析器对它的时区处理不一致。加引号后它就是普通字符串,值不会被改写。

大整数会丢精度吗?

不会。超过 ±9007199254740991 的整数会以字符串形式写出,统计栏里的「大整数(转字符串)」会计数,这样 Snowflake ID 之类的值不会被浮点数截断。

输入为空或 TOML 写错会怎样?

空输入提示「请输入 TOML」;语法错误会显示「TOML 语法错误:第 X 行第 Y 列」以及解析器的原始提示,不会给出半截结果。

转换在本地完成吗?

是的,解析和序列化都在浏览器里执行,输入内容不会离开本机,断网同样可用。

关键词:tomlyamlconvertserializetoml 转 yaml配置格式转换序列化缩进

同类工具