什么是 JSON 转 TOML 转换器?
JSON 转 TOML 转换器将 JSON(JavaScript 对象表示法)数据转换为 TOML(Tom 的显而易见的最小语言)格式。它处理对象、数组、嵌套结构,并自动检测日期时间值以生成干净有效的 TOML 输出。
何时需要使用此工具?
项目配置
DevOps 工作流
数据迁移
学习 TOML
您的数据保持私密
- 无上传 — 您的数据永远不会离开您的设备
- 无追踪 — 我们不收集或存储任何输入数据
- 无服务器处理 — 一切都在您的浏览器中本地运行
如何使用
输入您的 JSON
将您的 JSON 数据粘贴或输入到左侧面板。您也可以点击上传图标从您的设备加载 JSON 文件。
自动转换
当您输入时,TOML 输出会自动出现在右侧面板中,具有实时验证和格式化。
调整选项
配置转换设置,如空值处理和内联表格式化,以满足您的需求。
导出结果
将 TOML 输出复制到您的剪贴板或下载为 .toml 文件以在您的项目中立即使用。
转换选项
空值处理
选择如何处理 JSON 中的空值:
- 跳过 — 从输出中完全省略空键
- 空字符串 ("") — 将空值转换为空字符串
内联表
小对象的紧凑格式:
- 具有 ≤3 个基本键的对象显示为
{ key = "value" } - 生成更可读、更紧凑的输出
文件上传
点击工具栏中的上传图标从您的设备加载 JSON 文件。文件内容将自动加载到编辑器中并立即转换为 TOML 格式。
主要功能
实时转换
当您输入时,JSON 会转换为 TOML,具有智能防抖以优化性能。对转换选项的更改会触发即时重新转换,为您提供关于输出的即时反馈。
智能结构映射
转换器精确地将 JSON 结构智能映射到其 TOML 等效项:
| JSON 结构 | TOML 输出 | 示例 |
|---|---|---|
| 对象 | 带 [table] 标头的 TOML 表 |
[database] |
| 嵌套对象 | 点号路径表示法 | [server.config] |
| 对象数组 | 表数组语法 | [[products]] |
| 基本类型数组 | 内联数组 | ["a", "b", "c"] |
| 基本类型 | 直接值映射 | port = 8080 |
空值处理
省略空键
- 空键不会出现在输出中
- 警告消息显示省略的键
- 可选字段的更干净输出
空字符串转换
- 空值变为
"" - 在输出中保留所有键
- 保持结构一致性
内联表
具有最多 3 个基本值的小对象可以显示为 TOML 内联表而不是单独的表部分,生成更紧凑和可读的输出。
# Without inline tables
[point]
x = 1
y = 2
z = 3
# With inline tables enabled
point = { x = 1, y = 2, z = 3 }
日期时间检测
匹配 RFC 3339 日期、时间或日期时间模式的字符串会自动识别,并作为裸 TOML 日期时间值输出,不带引号,确保正确的类型处理。
- 日期格式:
2024-01-15 - 日期时间格式:
2024-01-15T10:30:00Z - 时间格式:
10:30:00
智能键引用
包含空格、点或特殊字符的 JSON 键在 TOML 输出中会自动引用以确保有效性。简单的字母数字键使用裸格式以获得最大可读性。
# Simple keys (no quotes needed)
name = "John"
age = 30
# Special keys (automatically quoted)
"user.name" = "John"
"first name" = "John"
"api-key" = "secret"
状态栏
底部状态栏提供关于您的转换的实时反馈:
- 验证状态 — 显示有效、无效或就绪状态
- 键计数 — 输出中的总键数
- 文件大小 — 输出大小(字节),用于下载规划
常见问题
为什么我不能将 JSON 数组转换为根?
TOML 要求根是表(键值对)。JSON 数组在根级别没有 TOML 规范中的等效项。
解决方案:首先将您的数组包装在对象中。例如:
// Instead of: [1, 2, 3]
// Use:
{
"items": [1, 2, 3]
}
空值如何处理?
TOML 没有空值类型。您可以在两种策略之间选择:
- 跳过 — 空键不会出现在输出中。警告消息显示哪些键被省略。
- 转换为空字符串 — 空值变为
"",在输出中保留所有键。
在转换选项中选择最适合您用例的策略。
什么是内联表?
内联表是小对象的紧凑 TOML 语法,显示在单行上:
point = { x = 1, y = 2 }
启用内联表选项以对具有最多 3 个基本值的对象使用此格式。这为简单结构生成更紧凑和可读的输出。
对象数组如何转换?
每个元素都是对象的数组使用 [[name]] 语法变为 TOML 表数组:
[[products]]
name = "Hammer"
price = 9.99
[[products]]
name = "Nail"
price = 0.05
注意:混合数组(包含对象和基本类型)被视为内联数组。
日期时间字符串是否自动检测?
是的。匹配 RFC 3339 模式的字符串会自动识别,并作为裸 TOML 日期时间输出,不带引号:
2024-01-15— 日期格式2024-01-15T10:30:00Z— 带时区的日期时间10:30:00— 时间格式
这确保正确的类型处理和与 TOML 解析器的兼容性。
是否有大小限制?
由于所有处理都在您的浏览器中进行,实际限制取决于您设备的可用内存和处理能力。
为获得最佳性能,我们建议文件大小在 5MB 以下。更大的文件仍然可以工作,但处理可能需要更长时间。
还没有评论,快来发表第一条!