TOML ⇄ JSON 转换
Rust/Python 配置 · 双向互转
TOML 转换
就绪
ABOUT
关于 TOML ⇄ JSON 转换
在 TOML 与 JSON 格式之间转换,方便编辑 Rust、Python 项目配置文件。
Rust Cargo、Python Poetry、Hugo 配置——TOML 在静态类型与脚本语言生态中越来越常见。本地互转让你无需安装 cargo、python -c 即可审查 pyproject.toml 结构。
DEEP DIVE
深入了解 TOML ⇄ JSON 转换
TOML(Tom's Obvious Minimal Language)因 Rust Cargo、Python Poetry/pyproject.toml、 Hugo 配置等生态而流行。与 JSON 相比,TOML 更易读写,但 JavaScript 原生不支持。JSONSort 提供 TOML ↔ JSON 本地双向转换,无需安装 Python tomllib 或 Rust toml crate。
转换保留表([section])与键值结构:TOML table 对应 JSON 对象,数组 of table 对应 JSON 对象数组,适合快速查看 Rust/Python 项目配置结构。
TOML table 与 dotted key 在 JSON 中均映射为嵌套对象;[[array of tables]] 对应 JSON 对象数组。转换后建议用树视图确认 [dependencies] 等 section 是否正确展开,避免 dotted key 与 table 冲突导致覆盖。
FEATURES
核心能力
TOML → JSON
解析 TOML 配置文件为 JSON 对象。
JSON → TOML
从 JSON 生成格式正确的 TOML 文本。
Table 支持
正确处理 [section] 与 [[array of tables]]。
类型保留
字符串、整数、浮点、布尔、日期时间正确映射。
文件导入
拖拽 .toml 文件导入解析。
本地转换
Cargo.toml 等可能含私有 crate 源配置,本地更安全。
日期时间
TOML offset datetime 转为 ISO 8601 JSON 字符串。
整数/浮点
区分 TOML 整数与浮点,JSON 中类型正确保留。
HOW TO USE
使用步骤
-
1
粘贴 TOML 或 JSON
-
2
选择转换方向
-
3
复制并导出结果
-
4
转换失败时查看错误提示,修正源文件语法后重试
-
5
结果可用格式化工具美化,或导出供下游脚本使用
WORKFLOW
典型工作流
从导入数据到导出结果的完整流程,帮助团队统一 TOML ⇄ JSON 转换 的使用方式。
导入 TOML
粘贴 Cargo.toml / pyproject.toml 或拖拽文件。
检查 JSON
树视图确认 table 与 array of tables 结构。
编辑(可选)
在 JSON 侧修改后转回 TOML 提交 PR。
流水线集成
复制 JSON 给不支持 TOML 的内部工具。
USE CASES
适用场景
Rust 开发
Cargo.toml 转 JSON 后用树视图浏览依赖结构。
Python 开发
pyproject.toml 转 JSON 便于 CI 脚本读取。
DevOps
统一 TOML 配置与 JSON 配置管理工具链。
技术写作
文档中 TOML 示例旁提供 JSON 等价形式。
Rust 生态
Cargo.toml workspace 成员与 features 转 JSON 做 CI 矩阵。
静态站点
Hugo config.toml 转 JSON 接入 headless CMS 配置同步。
TIPS
使用技巧
- Cargo.toml 转换后检查 [dependencies] 下的 crate 版本键。
- TOML 日期时间类型在 JSON 中通常转为 ISO 8601 字符串。
- JSON → TOML 时,深层嵌套对象会转为 dotted keys 或 subtable。
- 与 YAML 工具对比:Rust 生态用 TOML,K8s 生态用 YAML,按项目选工具。
- 转换失败时检查 TOML 是否有重复键或未闭合字符串。
- 转换结果可用格式化工具美化,便于 Git diff 审查。
- Cargo workspace.dependencies 转 JSON 后用路径提取查版本。
- JSON → TOML 后 dotted key 与 [table] 不要混用同一层级。
- 多行字符串 """ """ 在 JSON 中变为 换行符。
- 与 YAML 工具对比:按项目生态选源格式,JSON 作中间桥梁。
LOCAL VS ONLINE
本地 vs 在线工具
JSONSort 坚持纯前端架构,以下对比说明为何本地化工具更适合处理开发数据。
TROUBLESHOOTING
常见误区与排查
实际使用中容易遇到的问题及建议处理方式,减少反复试错的时间。
重复键报错
建议:TOML 不允许重复定义;检查 dotted key 与 table 冲突。
转回 TOML 顺序变化
建议:功能等价;若依赖顺序请人工调整。
日期格式不对
建议:确认 TOML datetime 带时区;JSON 侧为 ISO 字符串。
特殊字符键
建议:含点号的键用引号包裹 "key.with.dots"。
FAQ
常见问题
支持 Cargo.toml 吗?
支持标准 TOML 1.0 语法。Cargo 特定语义(如 workspace)按结构转换。
JSON 转 TOML 会丢信息吗?
JSON 可表示的结构均可转 TOML。TOML 注释在 JSON 方向会丢失。
与 YAML 工具有什么区别?
TOML 与 YAML 语法不同,请根据源文件格式选择对应工具。
支持 inline table 吗?
支持 { key = "value" } 形式,转为 JSON 嵌套对象。
丢失注释怎么办?
TOML 注释无法进入 JSON,请保留 .toml 源文件作为注释来源。
数据会上传到服务器吗?
不会。JSONSort 所有工具均在浏览器本地运行,您的输入内容不会发送到任何后端服务器。
需要注册或安装吗?
不需要。打开页面即可使用,无需账号、无需下载客户端,也支持 PWA 离线缓存。
支持多大的文件?
取决于浏览器内存,通常可流畅处理数 MB 级别的数据。超大文件建议先拆分或使用合并清理工具。