tigtools

JSON 转 TOML 转换器

粘贴 JSON 对象,即可获得带有表(table)和表数组(array of tables)的 TOML。TOML 无法表示的值会被标记,而不会被静默更改。

在浏览器中运行 无需注册

改为将 TOML 转换为 JSON

使用方法

  1. 粘贴一个 JSON 对象,或尝试示例。
  2. 如果 JSON 中包含不需要的 null 值,请开启“省略 null 值”。
  3. 复制 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 不会被上传或存储。