ZH
我的工具

JSON 转 TOML(也支持 YAML)

把 JSON 或 YAML 转换为 TOML:[表]、[[表数组]]、带引号的键、多行字符串,以及可选的 TOML 日期时间。输出会重新解析以验证。

2024-02-29、07:30:00 和 2024-02-29T07:30:00Z 会变成不带引号的 TOML 日期时间。
我的工具 →
广告

Cargo.toml、pyproject.toml、Hugo 和 Netlify 设置等 TOML 配置文件比 JSON 更易读,但要根据现有数据手写却很繁琐:嵌套对象要变成 [表],对象列表要变成 [[表数组]],含点或空格的键需要加引号,普通值还必须排在所有表之前。这个转换器可以从 JSON 或 YAML 自动完成这一切,然后用 TOML 1.0 解析器把自己生成的 TOML 回读一遍,确认内容没有变化。

使用方法

  1. 粘贴 JSON(对象)或 YAML(映射)。
  2. 决定如何处理 TOML 无法存储的 null 值。
  3. 按需选择把小对象写成内联表,把 ISO 日期字符串写成 TOML 日期。
  4. 把 TOML 复制到你的 .toml 文件中。

计算公式

对象 → [表] · 对象数组 → [[表数组]] · 其他数组 → [ … ] · 含换行的文本 → """…"""

在每个表内部,普通值排在前面,子表排在后面,这是 TOML 的要求;其余键的顺序保持不变。不是只由字母、数字、_ 和 - 组成的键会加引号。JSON 数字保持原来的写法(1.0 仍是浮点数,长整数保留全部位数);整数必须在 64 位范围内。字符串会按 TOML 基本字符串转义。只有在你要求时才转换日期,因为“2024-02-29”也可能只是文本。

示例

示例中先是普通值:title = "我的应用"、tags = ["web", "api"] 以及多行的 motd;然后是 [server]、带 url 的 [database]、[database.pool],以及张伟和李娜的两个 [[users]] 块,共 5 个标题。开启“内联表”后,{"pt": {"x": 1, "y": 2}} 会写成 pt = { x = 1, y = 2 }。

常见问题

null 会怎样处理?

TOML 没有 null。默认情况下转换器会停止并显示 null 的位置;你也可以改为省略这些键,或写成空字符串。

为什么我的键的顺序变了?

TOML 会把 [表] 标题之后的所有键都当作该表的一部分,所以普通值必须写在子表之前。变化的只是位置,数据没有变。

能把 YAML 转成 TOML 吗?

可以。选择 YAML,或保持自动检测。锚点、别名和合并键(<<: *defaults)会被展开,YAML 注释不会保留,YAML 1.2 的数字会保持类型和写法,所以 1.0 仍是浮点数,像 200 这样的键仍是 "200"。别名会展开成数百万个值的文件会被拒绝。

我的数据会被上传吗?

不会。转换和校验都在浏览器中完成。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). JSON 转 TOML(也支持 YAML). https://kakao.mobile/zh/tools/json-to-toml-converter/

MLA

“JSON 转 TOML(也支持 YAML).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/json-to-toml-converter/.

广告