空 TOML 表仍然保留空对象
用表布局与数值类别区分配置的外观和语义。
空表头与 inline table 的语义
原作者以为 arguments = {} 没有保留;实际复现里两个 arguments 仍以空表头存在。转换后的表顺序、空行和表示形式可以不同,但空对象结构相同。
[service]
arguments = {}
# Equivalent alternative:
[service.arguments]
数值类别属于数据模型
整数 1 与浮点 1.0 可以有不同的接收方行为。这份转换保留类别,但浮点使用 binary64,因此十进制舍入与下溢仍然发生;原始输入作为单独文件保留。
| 输入 | 处理 |
|---|---|
| 9007199254740991 | 精确整数 |
| 9007199254740992 | 整份拒绝 |
| 1.0 | 保持浮点类别 |
| 1.234567890123456789 | 1.2345678901234567 |
| 1e-400 | 浮点 0.0 |
| null / date / -0.0 | 整份拒绝 |
用解析后的配置验证交付
核对空对象、数组元素顺序、引号里的带点键名和数值类别,再让目标应用读取完整结果。文本 diff 可以说明排版变化;它本身不能证明数据丢失。
- 检查完整转换结果里的空对象与数组顺序。
- 按接收应用的要求核对整数与浮点类别。
- 将原始输入下载和转换报告与转换后的配置一起保留。
参考资料
- 配置格式转换问题
复现配置中,空的 arguments 对象仍以表头形式保留。问题在于对布局的理解;用户是否偏好浏览器工具、实际需求规模尚未核实。
- TOML 1.1 规范
表、表数组、字符串和带类型的数值共同定义数据模型。此转换工具明确限定了支持的有限值范围。
本分类工具使用说明
展开工具,查看操作步骤、可调选项和支持范围,再直接进入工作区。
TOML 与 JSON 配置转换在 TOML 与 JSON 之间交付一份配置,保留空对象、表数组和数值类型,下载完整结果、原件与报告。
在 TOML 与 JSON 之间交付一份配置,保留空对象、表数组和数值类型,下载完整结果、原件与报告。
操作步骤
- 选择 TOML → JSON 或 JSON → TOML。
- 粘贴实际配置,或选择原始 UTF-8 文件。
- 转换后检查空对象、数值类别及报告中的字节和节点计数。
- 下载转换结果、source-original 原件和 conversion-report.json,再用接收应用验证配置。
可调选项
- 转换方向
- TOML → JSON · JSON → TOML
能力与限制
- 粘贴文本或选择一个 UTF-8 文件,均最多 2 MiB。已选文件优先,忽略旧粘贴内容;文件名最多 512 个 UTF-8 字节。明确选择转换方向,不根据扩展名猜测。
- 支持 TOML 1.1 的表、表数组、空对象、嵌套或混合数组、字符串、布尔值及下述数值范围;JSON 根节点必须是对象。空 TOML 表示空对象。
- 整数范围为 −9007199254740991 至 9007199254740991。TOML 整数与 JSON 无小数点或指数的整数原文先按 BigInt 读取,超范围整份拒绝。
- 带小数点或指数的数值使用有限 IEEE 754 binary64,保留浮点与整数类别。十进制可能舍入或下溢:1.234567890123456789 变为 1.2345678901234567,1e-400 变为浮点 0.0;不保留原始数值写法或任意十进制精度。
- JSON null、TOML 日期/时间、非有限数、浮点负零、JSON 原文 −0、重复键、损坏语法或 Unicode 均整份拒绝,不转成字符串、不删值、不自动修补。日期外形的字符串仍是字符串。
- 最多 100,000 个逻辑值节点、64 层容器;根对象计第 1 层,标量不增加容器深度。序列化工作评分最多 16 MiB,这是保守的逻辑评分,并非精确内存或 CPU 用量。完整转换结果最多 8 MiB,报告最多 64 KiB,超限不返回部分文件。
- 可接受并记录一个开头 BOM;两个开头 BOM 拒绝。原件字节及 BOM 完整保留;注释、排版、表布局、整数进制和数值写法会规范化。TOML 多行字符串的换行依其数据模型处理。
- 处理在浏览器 Worker 中进行,10 秒超时或手动取消会终止处理。屏幕最多预览 4,000 个 Unicode 码点,复制和下载保留完整转换结果。内容不上传。