本站工具的实际程序运行记录

格式化之前,先发现可能丢失的数据

同一组受控输入、两个版本、逐项记录输出。数据是构造的边界样例,结果由测试脚本实际运行生成。

为什么要做这次改进

2.1 的 JSON 工具主要检查能否解析与顶层键是否存在。当输入包含重复键或特别大的数字时,解析器可能先改变信息,再输出一份整齐的 JSON。原有说明提示了风险,但没有在操作中拦住它。这次把提示变成了检查:发现特定风险后停止格式化,原文仍留在输入框。

如何取得下面的结果

记录由独立脚本分别调用发行版 2.1 与 2.2 的 JSON 检查函数生成。每次使用相同输入且不设置必填键;记录格式化结果或错误提示。本页没有调用外部模型,也没有用示范分数替代运行记录。

运行环境:v26.0.0;记录时间(UTC):2026-09-06T03:33:24.856Z。这些是构造样例,不是用户提交的资料。

普通对象

确认正常的对象仍可格式化。

相同输入

{"task":"校对","count":3}

2.1 实际结果

{
  "task": "校对",
  "count": 3
}

2.2 实际结果

{
  "task": "校对",
  "count": 3
}

重复金额字段

同一个对象中的后值可能覆盖前值。

相同输入

{"total":15,"total":30}

2.1 实际结果

{
  "total": 30
}

2.2 实际结果

重复键:$/total。已停止格式化,避免覆盖原值。

转义后同名的键

键的原文不同,解码后仍可能重复。

相同输入

{"a":1,"\u0061":2}

2.1 实际结果

{
  "a": 2
}

2.2 实际结果

重复键:$/a。已停止格式化,避免覆盖原值。

超出安全范围的编号

数字型编号可能在解析时发生舍入。

相同输入

{"id":9007199254740993}

2.1 实际结果

{
  "id": 9007199254740992
}

2.2 实际结果

不安全整数:$/id。请按字段约定使用字符串或专用精度工具。

指数数值溢出

溢出的数值重新序列化可能变为 null。

相同输入

{"amount":1e309}

2.1 实际结果

{
  "amount": null
}

2.2 实际结果

数值溢出:$/amount。已停止格式化,避免变为 null。

嵌套重复键

不能只检查顶层对象。

相同输入

{"order":{"qty":2,"qty":9}}

2.1 实际结果

{
  "order": {
    "qty": 9
  }
}

2.2 实际结果

重复键:$/order/qty。已停止格式化,避免覆盖原值。

字符串编号

需要精确保留的长编号可按字段约定使用字符串。

相同输入

{"id":"9007199254740993"}

2.1 实际结果

{
  "id": "9007199254740993"
}

2.2 实际结果

{
  "id": "9007199254740993"
}

这能证明什么

这些记录说明新版针对本组输入拦截了重复键、数值溢出和不安全整数,并保留了普通对象与字符串标识符的格式化能力。它们不能证明所有 JSON 都经过形式化验证,也不能评价任何模型的通用能力。

仍然存在的边界

工具不判断订单是否真实,不实现完整 JSON Schema,也不提供任意精度小数运算。普通小数仍可能受浮点表示影响。深度超过 100 层会拒绝处理;输入长度也受限制。需要完整保留原始文本时,应保存原文,而不是只保存格式化结果。

怎样自己复核

下载记录中的输入和结果,或者把上面的输入复制到当前 JSON 工具逐项运行。记录附带被调用脚本的 SHA-256,方便核对测试版本;脚本哈希不是第三方认证。

让工作可以继续

六个工具现在支持保存本地工作文件。它保留输入和选项,不把旧结果当作已验证结论;载入后必须重新计算。文件由你自己保管,不上传到本站,也不自动存入浏览器持久存储。

机制参考:MDN 的 JSON.parse 说明。本页的对照记录来自本站工具程序的实际运行。