自 2010 年 · 每月支持超过 200 万次工具运行
自 2010 年
添加到 Chrome

我的工具箱

自动模式

还没有收藏的工具。

升级为高级版
相关工具
XML转JSON转换器JSON 转 CSV 转换器JSON字符串转义反转义XML验证器
主页 > 文本工具 > 其他文字工具
 

TOML 转 JSON 转换器

将TOML配置转换为JSON,支持嵌套表、表数组、内联表和多行字符串,可输出美化、压缩或排序格式,附结构视图、精确到行的错误提示及一键示例。

免费使用无需注册即时出结果
TOML 转 JSON 转换器立即免费试用 ▼
快速示例(点击加载)
您的 TOML 0 字符 · 0 行 · 0 非空行
输出样式

Embed TOML 转 JSON 转换器 Widget

TOML 转 JSON 转换器

欢迎使用 TOML 转 JSON 转换器,这是一个免费的在线工具,只需点击一下,即可将任何 TOML 配置转换为整洁、有效的 JSON。无论您是将 Cargo.toml 迁移到基于 JSON 的流水线,直观地调试深度嵌套的设置,还是将 TOML 文件输入到仅接受 JSON 的服务中,此转换器都能正确处理每一个 TOML 结构:表、子表、表数组、内联表、点分键、多行字符串、十六进制/八进制/二进制整数、日期和特殊浮点数。选择适合您工作流程的输出样式——美化 2 空格、美化 4 空格、紧凑或按键排序——并通过结构树、统计仪表板和转换图表检查结果。

什么是 TOML,为什么要将其转换为 JSON?

TOML (Tom's Obvious Minimal Language) 是一种旨在清晰且易于人类阅读的配置格式。它为 Cargo (Rust)、Poetry (Python) 和许多其他开发人员工具提供包元数据支持。另一方面,JSON 是 Web 上通用的数据交换格式。许多系统(REST API、文档数据库、浏览器 localStorage 和 JavaScript 应用程序)仅支持 JSON。将 TOML 转换为 JSON 让您可以连接这两个世界,而无需重写配置。

将 TOML 转换为 JSON 的常见原因

  • 将 TOML 传送到仅支持 JSON 的 API —— 例如部署服务或功能标志平台。
  • 直观地检查深度嵌套的配置 —— JSON 的括号结构使层级关系一目了然。
  • 生成前端配置包 —— 使用 TOML 编写格式,将 JSON 发送到浏览器。
  • 配合 Linter 和 JSON Schema 使用 —— 通过 JSON Schema 验证器验证 TOML 结构。
  • 比较配置 —— 在不同环境之间对比键排序后的 JSON 以发现差异。
  • 迁移旧版配置 —— 逐步将 TOML 文件移植到基于 JSON 的配置服务中。

此转换器的主要功能

  • 全面覆盖 TOML 1.0 —— 基础和字面量字符串(单行和多行)、带下划线分隔符的十进制/十六进制/八进制/二进制整数、科学计数法浮点数、inf-infnan、布尔值、日期和日期时间。
  • 嵌套结构 —— 表、子表 ([a.b.c])、表数组 ([[a]])、内联表 ({ a = 1, b = 2 }) 和点分键。
  • 四种输出样式 —— 美化 2 空格、美化 4 空格、紧凑(压缩)和用于对比差异的排序键输出。
  • 可视化结构树 —— 查看 TOML 结构如何转换为 JSON 对象和数组,并带有类型徽章(表、表数组、数组、字符串、数字、布尔值)。
  • 统计仪表板 —— 表、键、数组、表数组的数量、深度,以及输入/输出字符计数。
  • 感知行号的错误消息 —— 每个解析错误都包含确切的行号,以便您可以立即修复。
  • 一键示例库 —— 加载 Cargo.toml 风格、pyproject 风格、应用程序配置、数字或多行字符串示例。
  • 复制和下载 —— 将 JSON 复制到剪贴板或下载为 .json 文件。
  • 移动端响应式 —— 在手机、平板和桌面设备上都能舒适使用。
  • 数据不离开您的浏览器请求 —— TOML 在服务器端解析,结果在同一响应中返回;不存储任何内容。

TOML 如何映射到 JSON

大多数 TOML 结构都有清晰、无损的 JSON 对应项。以下是转换器应用的映射关系:

TOML 结构JSON 对应项说明
key = "string""key": "string"基础字符串保留转义序列;字面量字符串保持原样。
key = 42"key": 42十进制、十六进制 (0x)、八进制 (0o) 和二进制 (0b) 整数都变为 JSON 数字。
key = 3.14"key": 3.14浮点数保留其精度;inf/nan 转换为 null 以符合 JSON 规范。
key = true"key": true布尔值直接映射。
key = 2026-04-25T12:00:00Z"key": "2026-04-25T12:00:00Z"JSON 没有日期时间类型,因此保留 RFC 3339 字符串。
key = [1, 2, 3]"key": [1, 2, 3]数组变为 JSON 数组。
[table]
k = 1
"table": { "k": 1 }表变为对象。
[a.b.c]
k = 1
"a": { "b": { "c": { "k": 1 } } }子表隐式嵌套。
[[items]]
k = 1
"items": [{ "k": 1 }]表数组变为对象数组。
k = { a = 1, b = 2 }"k": { "a": 1, "b": 2 }内联表相当于 JSON 对象。
a.b.c = 1"a": { "b": { "c": 1 } }点分键创建隐式嵌套。

示例

TOML 输入
title = "App"
[server]
host = "localhost"
port = 8080
JSON 输出
{
  "title": "App",
  "server": {
    "host": "localhost",
    "port": 8080
  }
}
TOML 输入(表数组)
[[user]]
name = "Alice"
admin = true

[[user]]
name = "Bob"
admin = false
JSON 输出
{
  "user": [
    { "name": "Alice", "admin": true },
    { "name": "Bob",   "admin": false }
  ]
}
TOML 输入(点分键 + 内联)
db.host = "10.0.0.1"
db.port = 5432
db.options = { ssl = true, pool = 20 }
JSON 输出
{
  "db": {
    "host": "10.0.0.1",
    "port": 5432,
    "options": { "ssl": true, "pool": 20 }
  }
}

如何使用 TOML 转 JSON 转换器

  1. 将您的 TOML 粘贴到输入框中,或者点击一个“快速示例”卡片来加载典型的配置。
  2. 选择一种输出样式 —— 美化 2 空格(默认)、美化 4 空格、紧凑或排序键。
  3. 点击“转换为 JSON”。 该工具将解析 TOML 并渲染带有统计信息和结构树的 JSON 输出。
  4. 检查结果 —— 查看统计仪表板以获得快速摘要,展开结构树以查看层级,阅读转换图表以了解映射关系。
  5. 复制或下载 JSON。点击“复制”按钮将其放入剪贴板;点击“下载”将其保存为 converted.json

支持的 TOML 功能

字符串 (Strings)

  • 基础字符串使用双引号并支持转义序列:\n, \t, \r, \", \\, \uXXXX, \UXXXXXXXX
  • 字面量字符串使用单引号,包含不带转义的原始字符。
  • 多行基础字符串使用三个双引号 ("""),支持行尾反斜杠来修剪空白字符。
  • 多行字面量字符串使用三个单引号 (''') 并原样保留所有内容。

数字 (Numbers)

  • 十进制整数,可选带下划线分隔符:1_000_000
  • 十六进制/八进制/二进制整数0xDEADBEEF, 0o755, 0b1010
  • 浮点数,可选带符号、小数点和指数:3.14, -2e-3, 6.022e23
  • 特殊浮点数inf, -inf, nan(转换为 JSON null)。

表和数组 (Tables and Arrays)

  • [name] 开启一个新表。
  • 子表[a.b.c] 创建嵌套表。
  • 表数组[[name]] 向数组中追加一个新表。
  • 内联表{ a = 1, b = 2 }
  • 数组[1, 2, 3] 可以跨越多行并包含混合的值类型。

选择正确的输出样式

  • 美化 2 空格 —— 默认设置。紧凑且易读;非常适合大多数用途,包括提交到 git 的配置文件。
  • 美化 4 空格 —— 符合 PEP-8 风格缩进;受到某些 Python 和 Java 团队的青睐。
  • 紧凑(压缩) —— 单行显示,无额外空格;网络传输时的最小负载。
  • 排序键 —— 键按字母顺序排序的美化输出。非常适合对比差异 (diff),因为相同的配置无论键的顺序如何,总是会产生字节级一致的输出。

常见问题

什么是 TOML,为什么要将其转换为 JSON?

TOML 是一种旨在清晰且极简的配置格式。将其转换为 JSON 让您可以将配置输入到仅支持 JSON 的系统、直观地调试嵌套结构、与 Web API 共享并集成到预期 JSON 的 JavaScript 代码中。

此转换器是否处理表数组和内联表?

是的。转换器完全支持 [[array.of.tables]] 语法(转换为 JSON 对象数组)、内联表如 { a = 1, b = 2 }(转换为 JSON 对象)、嵌套子表、点分键和任意嵌套深度。

支持哪些输出样式?

四种样式:美化 2 空格(默认,适合阅读)、美化 4 空格(符合 PEP-8 风格缩进)、紧凑(单行压缩 JSON,体积最小)和排序键(键按字母顺序排序的美化输出,便于对比差异)。

TOML 日期时间如何转换为 JSON?

JSON 没有原生的日期时间类型,因此 TOML 日期时间(RFC 3339 格式,如 2026-04-25T12:00:00Z)在 JSON 输出中保留为字符串。本地日期、本地时间和偏移日期时间都将原样保留,随时可以使用任何日期时间库进行解析。

TOML 的 inf 和 nan 值会如何处理?

标准 JSON 不允许 InfinityNaN 字面值,因此来自 TOML 的非有限浮点数(inf, -inf, nan)在 JSON 输出中被转换为 null。这会生成严格符合 RFC 8259 规范的输出,并可在每个 JSON 库中正确解析。

解析错误来自哪里,我该如何修复?

转换器会报告解析失败的确切行以及问题的描述(未闭合的字符串、重复的键、缺少等号、格式错误的数组等)。常见原因是引号或括号不匹配、在意外位置混用制表符,以及不小心重新定义了之前已定义的表。

有大小限制吗?

该工具可以轻松处理几兆字节大小的 TOML 文件。对于非常大的配置文件,性能主要受浏览器渲染而非解析过程的影响。

我的 TOML 数据会被发送到别处或存储吗?

您的输入在服务器端解析以产生 JSON 输出,然后就会被丢弃。我们不会记录、存储或将您的配置传输到任何其他地方。

我可以将 JSON 转回 TOML 吗?

此工具是单向的(TOML → JSON)。对于反向转换,请使用 JSON 转 TOML 转换器或编程库,如 Python 的 tomli_w、JavaScript 的 @iarna/toml 或 Rust 的 toml crate。

实现整洁转换的小技巧

  • 使用排序键输出进行版本对比 —— 您版本控制下的 JSON 在团队成员之间将保持稳定。
  • 优先使用多行字符串 ("""''') 来处理段落文本,而不是使用 \n 转义符进行拼接。
  • 使用表来对相关的键进行分组 —— 它们比长点分键更具可读性。
  • 注意意外的表重定义 —— TOML 不允许两次定义同一个表;转换器会捕捉到这一点并提供清晰的错误提示。
  • 保持日期和时间符合 RFC 3339 —— 仅限本地的格式也可以解析,但 RFC 3339 在 JSON 使用者之间能更整洁地往返传输。

其他资源

引用此内容、页面或工具为:

"TOML 转 JSON 转换器" 于 https://MiniWebtool.com/zh-cn/toml-转-json-转换器/,来自 MiniWebtool,https://MiniWebtool.com/

由 miniwebtool 团队提供。更新时间:2026年4月25日

其他文字工具:

热门与最新工具:

CSV转JSON转换器JSON转YAML转换器JSON格式化和验证工具查看全部 →
主页 > 文本工具 > 其他文字工具 > TOML 转 JSON 转换器