看得更清楚

格式化 JSON,同时保留大数原值

为什么格式化应保留数字字面量,以及如何处理重复键与严格校验。

ToolMellow ·

格式化不是数据转换

格式化工具应提高源码的可读性,而不是悄悄改变数值。JavaScript 的 Number 无法精确表示所有大于 9007199254740991 的整数。因此,将更大的整数解析为 Number 再序列化,可能改变原始值。

保留源代码中的标记

ToolMellow 校验 JSON,并直接修改原始源码中的空白。格式化不会通过 JSON.stringify 往返转换整个文档。9007199254740993 和 1e+20 等数字写法会保留。压缩只移除无意义的空白,不改变这些标记。

有意识地处理重复键

JSON 对象的源码可以出现重复成员名,但使用方处理方式不同,通常只保留最后一个值。格式化工具会警告重复键,而不会替您选择删除哪一个。请检查源码,决定真正需要的数据。

需要严格 JSON 时使用严格 JSON

此校验器不接受注释、末尾逗号或单引号字符串。错误会包含行号和列号。工具不会执行粘贴的文本,也不会悄悄修复它;请修正指出的问题后重新校验。

也要检查读取数据的应用

这里保留字面量,并不能改变下游应用的解析方式。如果 API 需要精确标识符或十进制计算,请在该应用中选用适当的模式和解析器。文档格式化完成并不代表端到端精度已获保证。

动手试试。