TOML 转 JSON

把 TOML 文档转换为 JSON,支持缩进和紧凑模式。

把 TOML 文档转换为 JSON,支持缩进和紧凑模式。 把 TOML 文档转换为 JSON,支持缩进和紧凑模式。

输出

背景知识

为什么要把 TOML 变成 JSON

JSON 是 Web 上的通用语:每个 API 都说它,每个编辑器都能高亮它,每种语言的标准库都有解析器。TOML 擅长人类编辑的配置,但作为运行时数据交换格式的支持不如 JSON 广泛。当你需要把 TOML 配置喂给只吃 JSON 的工具(在线 playground、schema 校验器、代码生成器等)时,可靠的 TOML→JSON 转换器能救场。

因为两种格式都足以表达同样的基本类型,转换基本无损。TOML 特有的类型(多行字符串、日期)翻译为普通字符串;JSON 特有的值(null)翻译为 JSON 字面量 null,TOML 没有原生对应。

关键特性

转换器提供美化切换(2/4 空格缩进)和紧凑模式(单行)。对于很大的配置文件,紧凑输出更容易粘贴到 curl 请求体里。“交换”按钮把 JSON 输出搬回输入框,方便重新编辑后再导出为 TOML。

工作流建议

转换后,先用 schema 校验器(ajv、jsonschema 等)验证 JSON,再喂给下游工具。TOML 解析器很严格:它会拒绝以数字开头的未加引号标量、带注释的内联表等常见错误。利用报错信息修复源文档,而不是改 JSON。

自研实现。TOML 由 BSD-3 协议的 smol-toml 库(已内置)解析,再通过浏览器原生 JSON.stringify 生成 JSON。不上传任何数据。

常见问题

转换器支持 TOML 1.0 特性吗?
支持。转换器解析 TOML 1.0,包括表数组([[name]])、内联表({ key = "value" })和点键(a.b.c)。
TOML 日期在 JSON 中如何输出?
无时间的日期变成 JSON 字符串 `YYYY-MM-DD`。日期时间变成 `YYYY-MM-DDTHH:MM:SS[.fraction][Z|+offset]`。接收方可用各自语言的日期库解析。
TOML 的多行字符串呢?
会输出为带换行符的普通 JSON 字符串。JSON 无法保留字面量风格,但解析后的值完全一致。
转换器能处理点键吗?
可以。`a.b.c = 1` 会变成 `{ "a": { "b": { "c": 1 } } }`,每个点键展开成嵌套对象。
无效 TOML 会被拒绝吗?
会。解析器在第一个非法 token 处抛出带行列指针的错误。修正源 TOML 后重试。
我的 TOML 会上传吗?
不会。解析通过内置的 smol-toml 库在本地完成,浏览器外不发送任何数据。