使用方法
- 粘贴一个 JSON 对象,或尝试示例。
- 如果 JSON 中包含不需要的 null 值,请开启“省略 null 值”。
- 复制 TOML,或将其下载为 .toml 文件。
工作原理
JSON 会被严格解析,然后使用开源 smol-toml 库写为 TOML 1.0。嵌套对象会变成 [tables],对象数组会变成 [[arrays of tables]],非纯单词的键会加引号。
TOML 无法表达 JSON 的全部内容。文档根节点必须是表,因此 JSON 数组或单个值会被拒绝。TOML 中没有 null:默认情况下,第一个 null 会连同其路径一起报告;你也可以选择改为省略对象中的 null 成员。数组内的 null 始终是错误,因为移除它会改变其他元素的位置。混合类型的数组(例如数字和字符串)在 TOML 1.0 中有效,但在较旧的 0.5 版本中无效,因此会在备注中提示。
JSON 不区分 1 和 1.0,因此整数会写为 TOML 整数。看起来像日期的字符串仍保持为字符串。另一个方向是 TOML 转 JSON。
示例
应用设置
{"server": {"host": "0.0.0.0", "port": 8080}} 会变成一个包含 host 和 port 键的 [server] 表。
工作者列表
"workers": [{"queue": "mail"}, {"queue": "images"}] 会变成两个 [[workers]] 块。
常见问题
为什么不允许使用 null?
TOML 没有 null 值。根据读取程序的需要,可以省略该键,或使用空字符串等值。
为什么数字和字符串混合的数组会显示备注?
自 TOML 1.0 起允许混合类型数组,但实现 TOML 0.5 的工具会拒绝它们。如果你的目标工具较旧,该备注可帮助你判断。
1.0 会保持为浮点数吗?
不会。JSON 将 1.0 和 1 存储为同一个数字,因此它会变成整数 1。如果读取程序需要浮点数,请写为 1.5 或编辑 TOML。
隐私
转换完全在您的浏览器中进行。您的 JSON 和 TOML 不会被上传或存储。