# TOML 验证器

在构建因文件错误而失败之前，验证 TOML 文件，例如 Cargo.toml、pyproject.toml，或 Hugo 和 Netlify 设置。验证器会根据 TOML 规范解析输入，并报告遇到的第一个错误及其行号、列号和解析器说明，包括重复键、表格重新定义和不可能的日期。对于有效文件，验证器会显示表格和键的数量以及顶层键，方便你快速确认结构。

## 常见问题

### TOML 验证器会检查什么？

它会严格按照 TOML 规范解析键、字符串、数字、布尔值、日期和时间、数组、内联表、表和表数组。任何偏差，例如缺少值、字符串未加引号或转义无效，都会被报告为错误。有效文件会附带简短的结构摘要。

### 错误包含哪些信息？

每条错误都会显示解析停止处的行号和列号，以及解析器提供的详细信息，例如日期无效，或尝试重新定义已定义的表或值。行号和列号从 1 开始计数。只显示第一个错误，因为后续错误往往由此引起。

### 为什么键或表会被报告为重新定义？

TOML 不允许在同一个表中重复使用键，像 [server] 这样的表头也只能出现一次。如果 [server] 表已经设置了 port，之后再定义像 server.port 这样的点分隔键，也会被视为重新定义。将条目合并到同一处即可修复。

### 表和键如何计数？

“表”会统计根级以下的所有表，包括内联表和表数组中的每个条目。“键”会统计每个值不是表或表数组的键，因此字符串列表计为一个键。“顶层键”会列出根级的名称，最多 50 个。

### 日期和时间会经过检查吗？

会。带偏移量的日期时间、本地日期时间、本地日期和本地时间都会经过验证，包括月份为 13 或小时为 25 这类不可能的值。使用其他格式编写的日期，例如 05/27/1979，并非 TOML 日期，必须加引号作为字符串。

### 允许使用哪些字符串和转义序列？

双引号基本字符串支持 \n、\t、\" 和 \uXXXX 等转义序列；单引号字面字符串则会按原样读取每个字符。两种字符串都支持使用三个引号的多行形式。遇到未知转义序列或未终止的字符串时，验证器会报告其位置。

### 接受非常大的整数吗？

接受。TOML 规范允许的 64 位范围内的整数（例如 9223372036854775807）均可接受。超出该范围的整数、前导零，以及不在数字之间的下划线都会被报告为错误。

### 字节顺序标记或 Windows 换行符会造成问题吗？

不会。文件开头的 UTF-8 字节顺序标记会被忽略，LF 和 CRLF 换行符都可接受。未转义的字符串内控制字符会被报告为错误。

### 它会检查键的含义吗？例如 Cargo 或 Poetry 是否认可这些键？

不会，验证器只检查 TOML 语法和结构。文件即使是有效的 TOML，其中也可能包含 Cargo 或 Python 构建后端无法识别的键。请先使用此工具排除语法问题，再检查特定工具的设置。

### 输入最大可以有多大？我可以转换它吗？

输入最多可达 5 MiB，嵌套数组和内联表最多可达 64 层。要将有效的 TOML 转换为 JSON、YAML 或其他格式，请使用数据格式转换器。

在这里投放广告？

[给我们发邮件](mailto:hi@dennn.is?subject=%E5%9C%A8%20OneClick%20Pro%20%E4%B8%8A%E6%8A%95%E6%94%BE%E5%B9%BF%E5%91%8A)

[广告 适用于 WordPress 的智能体就绪型插件套件。](https://sleekwp.com/?ref=oneclickpro)
