TOML 转 JSON 转换器
使用这款免费的在线工具立即将 TOML 配置转换为 JSON。支持嵌套表、表数组、内联表、多行字符串,并提供美化/紧凑/排序等输出样式、结构可视化、行级错误提示以及一键示例。
检测到广告拦截,导致我们无法展示广告
MiniWebtool 依靠广告收入免费提供服务。如果这个工具帮到了你,欢迎开通 Premium(无广告 + 更快),或将 MiniWebtool.com 加入白名单后刷新页面。
- 或升级 Premium(无广告)
- 允许 MiniWebtool.com 显示广告,然后刷新
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、-inf、nan、布尔值、日期和日期时间。 - 嵌套结构 —— 表、子表 (
[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] | "table": { "k": 1 } | 表变为对象。 |
[a.b.c] | "a": { "b": { "c": { "k": 1 } } } | 子表隐式嵌套。 |
[[items]] | "items": [{ "k": 1 }] | 表数组变为对象数组。 |
k = { a = 1, b = 2 } | "k": { "a": 1, "b": 2 } | 内联表相当于 JSON 对象。 |
a.b.c = 1 | "a": { "b": { "c": 1 } } | 点分键创建隐式嵌套。 |
示例
title = "App" [server] host = "localhost" port = 8080
{
"title": "App",
"server": {
"host": "localhost",
"port": 8080
}
}
[[user]] name = "Alice" admin = true [[user]] name = "Bob" admin = false
{
"user": [
{ "name": "Alice", "admin": true },
{ "name": "Bob", "admin": false }
]
}
db.host = "10.0.0.1"
db.port = 5432
db.options = { ssl = true, pool = 20 }
{
"db": {
"host": "10.0.0.1",
"port": 5432,
"options": { "ssl": true, "pool": 20 }
}
}
如何使用 TOML 转 JSON 转换器
- 将您的 TOML 粘贴到输入框中,或者点击一个“快速示例”卡片来加载典型的配置。
- 选择一种输出样式 —— 美化 2 空格(默认)、美化 4 空格、紧凑或排序键。
- 点击“转换为 JSON”。 该工具将解析 TOML 并渲染带有统计信息和结构树的 JSON 输出。
- 检查结果 —— 查看统计仪表板以获得快速摘要,展开结构树以查看层级,阅读转换图表以了解映射关系。
- 复制或下载 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(转换为 JSONnull)。
表和数组 (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 不允许 Infinity 或 NaN 字面值,因此来自 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日
其他相关工具:
其他文字工具:
- 相同字母异序词生成器
- 仿生阅读转换器 新
- 比较两个字符串
- 找最长一行工具
- AI语言检测器 精选
- 文本行处理器
- XML验证器 精选
- 文本转语音阅读器 新
- 文本列提取器 新
- JSON转YAML转换器 新
- 正则表达式测试器 新
- 文本差异对比工具 新
- CSV转JSON转换器 新
- 图片Base64转换器 新
- API测试工具 新
- ASCII码表 新
- Webhook测试器 新
- AI博客标题生成器 新
- AI 话题标签生成器 新
- AI标语生成器 新
- AI文章大纲生成器 新
- 在线记事本 新
- TOML 转 JSON 转换器 新
- JSON 转 CSV 转换器 新
- XML转JSON转换器 新
- SQL到MongoDB查询转换器 新