为什么要做这次改进
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 说明。本页的对照记录来自本站工具程序的实际运行。