跳到主要内容

配置读取:TOML To JSON — Numio

在浏览器中把 TOML 的表、数组和日期转换为 JSON。可以检查配置文件的结构;对于 JSON 无法容纳的数字,会报错而不是悄悄改变值。

以 JSON 对象和数组的形式查看配置文件中的表和表数组。

Converted in your browser. Comments are omitted. Non-finite numbers and unsafe integers are rejected instead of silently losing their values.

Load an example (replaces your input)

TOML

适用场景

  • 以 JSON 对象和数组的形式查看配置文件中的表和表数组。
  • 把带注释的 TOML 文件交给只接受 JSON 的工具。

使用方法

  1. 粘贴 TOML,或加载示例(设置与表、表数组、日期和多行字符串)。
  2. 查看右侧的 JSON:[server] 变为对象,[[products]] 变为对象数组。
  3. 如果出错,检查重复的键和引号。复制前确认字符串、数字和日期。

TOML 输入

[[products]]
code = "001"
name = "Notebook"

[[products]]
code = "002"
name = "Pen"

JSON 输出

{
  "products": [
    { "code": "001", "name": "Notebook" },
    { "code": "002", "name": "Pen" }
  ]
}

功能与限制

转换在浏览器中进行。注释、空白和 TOML 的引号风格不会保留。

JSON 没有日期类型,因此日期变为字符串;时区写法可能会被规范化。如需原样保留,请在 TOML 中给值加引号。

JSON 中不存在 inf 和 nan,整数只在 ±9,007,199,254,740,991 以内精确。这类值会报错,而不是变成 null 或被四舍五入;大的 ID 请写成字符串。

只检查 TOML 语法,不校验 Cargo.toml、pyproject.toml 等格式的必填字段。

FAQ

可以把 wrangler.toml 转换为 JSON 吗?

结构上可以:表变为对象,[[arrays]] 变为对象数组,键名不变。注释会被删除,替换文件之前请对照 Cloudflare 的 Wrangler 配置文档检查结果。

如何用 Python 把 TOML 转为 JSON?

Python 3.11 及以上版本自带 tomllib:python -c "import json,sys,tomllib; print(json.dumps(tomllib.load(open(sys.argv[1],'rb')), indent=2, default=str))" config.toml。default=str 会把日期转为字符串,与本页的处理相同。

可以保留前导零吗?

把值写成字符串,例如 code = "001"。不希望被当作数字的标识符请加引号。

为什么大数字会报错?

JavaScript 数字无法精确表示所有大整数,JSON 也没有 inf 或 nan。转换会停止而不是改变值;需要精确的 ID 请在 TOML 中写成字符串。

规范与参考资料