{
  "title": "JSON 格式化工程对照记录",
  "generated_at": "2026-09-06T03:33:24.856Z",
  "runtime": "v26.0.0",
  "method": "相同构造输入，直接调用两个发行版 jsonCheck(input, \"\")；未调用外部模型。",
  "scripts": {
    "before": {
      "version": "2.1.0",
      "sha256": "33935ccb2a46b0cd40e1d468a9fafdfa3d52dadd6d47e8171af3df5559e6e137"
    },
    "after": {
      "version": "2.2.0",
      "sha256": "38b57034aecfd138b0ecf54608f5de5321926c4267975180418f58db7e3d71c4"
    }
  },
  "cases": [
    {
      "name": "普通对象",
      "purpose": "确认正常的对象仍可格式化。",
      "input": "{\"task\":\"校对\",\"count\":3}",
      "before": {
        "status": "formatted",
        "output": "{\n  \"task\": \"校对\",\n  \"count\": 3\n}"
      },
      "after": {
        "status": "formatted",
        "output": "{\n  \"task\": \"校对\",\n  \"count\": 3\n}"
      }
    },
    {
      "name": "重复金额字段",
      "purpose": "同一个对象中的后值可能覆盖前值。",
      "input": "{\"total\":15,\"total\":30}",
      "before": {
        "status": "formatted",
        "output": "{\n  \"total\": 30\n}"
      },
      "after": {
        "status": "blocked",
        "output": "重复键：$/total。已停止格式化，避免覆盖原值。"
      }
    },
    {
      "name": "转义后同名的键",
      "purpose": "键的原文不同，解码后仍可能重复。",
      "input": "{\"a\":1,\"\\u0061\":2}",
      "before": {
        "status": "formatted",
        "output": "{\n  \"a\": 2\n}"
      },
      "after": {
        "status": "blocked",
        "output": "重复键：$/a。已停止格式化，避免覆盖原值。"
      }
    },
    {
      "name": "超出安全范围的编号",
      "purpose": "数字型编号可能在解析时发生舍入。",
      "input": "{\"id\":9007199254740993}",
      "before": {
        "status": "formatted",
        "output": "{\n  \"id\": 9007199254740992\n}"
      },
      "after": {
        "status": "blocked",
        "output": "不安全整数：$/id。请按字段约定使用字符串或专用精度工具。"
      }
    },
    {
      "name": "指数数值溢出",
      "purpose": "溢出的数值重新序列化可能变为 null。",
      "input": "{\"amount\":1e309}",
      "before": {
        "status": "formatted",
        "output": "{\n  \"amount\": null\n}"
      },
      "after": {
        "status": "blocked",
        "output": "数值溢出：$/amount。已停止格式化，避免变为 null。"
      }
    },
    {
      "name": "嵌套重复键",
      "purpose": "不能只检查顶层对象。",
      "input": "{\"order\":{\"qty\":2,\"qty\":9}}",
      "before": {
        "status": "formatted",
        "output": "{\n  \"order\": {\n    \"qty\": 9\n  }\n}"
      },
      "after": {
        "status": "blocked",
        "output": "重复键：$/order/qty。已停止格式化，避免覆盖原值。"
      }
    },
    {
      "name": "字符串编号",
      "purpose": "需要精确保留的长编号可按字段约定使用字符串。",
      "input": "{\"id\":\"9007199254740993\"}",
      "before": {
        "status": "formatted",
        "output": "{\n  \"id\": \"9007199254740993\"\n}"
      },
      "after": {
        "status": "formatted",
        "output": "{\n  \"id\": \"9007199254740993\"\n}"
      }
    }
  ]
}
