授权市场数据请求返回200,入库后两个商品ID却变成同一个值,先检查数据处理边界,而不是立刻换代理。JSON语法完全合法,也可能因为客户端把所有数字转成浮点数而丢失标识精度。

本文针对通过代理接收的JSON设计小规模受控验收,重点是去重与关联所用标识的精确保留,不讨论分页数量、NDJSON分帧或价格计算。样本均为合成数据,不代表已实测98IP兼容性或线上错误率。

两个不同标识卡沿上方保真路径保持区别,下方数值转换路径却将两卡合成一个,由放大镜检查这一差异

一、先确认哪些字段是标识

向目标接口负责人确认哪些字段是不可拆解的ID、哪些是数量,并记录JSON类型、允许字符、最大长度,以及前导零和大小写是否有意义。只包含数字的ID不代表需要参与算术,也不能为了让本地解析器通过就改写接口契约。

自有接口允许调整时,明确约定字符串形式通常更容易跨运行时保留。若接口必须返回JSON整数,则需要在普通浮点转换前选用能够保留精确值的解析与存储链路。不支持的值应明确拒绝或隔离,并保留原始证据,不能默默取近似值。

MDN给出的JavaScript最大安全整数是9007199254740991,更大的整数并非都能由Number精确区分。这是整数精确处理的限制,不是JavaScript能表示的最大数值范围,也不能泛化到所有语言和解析器。

二、制作独立且精确的样本

  1. 在自有端点准备两条记录,数字ID分别为9007199254740992与9007199254740993,并配不同的无害标记字段。
  2. 测试清单以字符串保存预期ID原文,不要先转成JavaScript Number再生成样本。
  3. 另备字符串ID版本、普通小整数,以及仅在规则允许时包含前导零的字符串。
  4. 声明预期记录数及ID与标记的精确对应关系,两个大ID必须保持不同。
  5. 在批准的基线与代理路径使用同一版本样本,并设置少量请求预算和固定期限。

这两个大整数专门用于暴露常见的不安全转换,本文没有宣称已运行该样本。若生成器本身已经舍入,测试在进入代理之前就失效了。

三、先保存表示,再做JSON解析

核对状态和内容类型,在JSON反序列化前保存有大小上限、已遮蔽的响应表示。明确客户端是否自动解压,两条路径比较同一层数据,不要一边哈希压缩传输字节,一边哈希解压后的正文。

自有确定性样本可按批准清单比较表示字节或哈希。真实响应可能持续变化,不能要求两次独立请求完全相同,应以某次请求捕获的响应作为该次解析参考,并限制关于线路的推论。

98IP动态住宅IP产品页适合用于了解授权市场数据线路测试所需产品;通过API配置页核对当前接入方式与账户选项。代理接入不规定目标站JSON结构,也不决定客户端数值精度。

四、逐个转换边界找首次变化

使用五栏证据:原始响应中的写法、解析后的值与运行时类型、应用规范化ID、存储值与类型、导出并重新载入的值。每栏都与清单中的精确字符串及标记对应关系比较,找到不同ID首次变相等的地方。

JSON reviver若拿到的数字已被舍入,再转字符串或BigInt也无法找回缺失的位数。应使用合适的无损解析器,或经过当前运行时验证支持的原始数值词元能力,保留转换前的原文。不要假设所有版本都有相同能力。

不要用正则表达式批量给任意JSON数字加引号;它可能影响数量、字符串或其他字段,并掩盖结构错误。按明确契约进行字段感知解析,类型不符合预期就清楚失败,不要静默强制转换。

原始样本正确而解析后ID合并,优先查解析器与转换;解析精确但数据库或导出改变值,查后续边界;原始确定性样本就不同,再核对响应生成、中间环节及客户端正文转换,不能提前判定是代理篡改。

五、验收关联与往返,不只看显示

界面能看到两行,不代表去重安全。将每个ID关联到预期标记,按约定精确键去重,再重新读取存储结果。验收要求两个不同ID及原来的标记对应关系均保留,不只是总行数等于二。

契约规定文本键时,就维持文本,并防止下游电子表格或ETL导入器自动转数字。导入时明确列类型,重新打开后再核对真实值。显示格式增加位数,不能修复早先已丢失的精度。

确需规范化标识时必须单独定义。只有目标标识语义允许,才能去前导零或改大小写。不能把处理数量的数值规范化规则套在不可拆解的业务标识上。

六、用有限矩阵检查故障及恢复

  • 精确字符串ID:解析、存储和重新读取后逐字符不变。
  • 大整数对:选定无损链路保留两个ID,或明确拒绝不支持的精度。
  • 受控不安全转换:独立清单发现ID碰撞,不把舍入结果当成功。
  • 精确解析后注入数值存储或导入错误:能定位首次失败的下游边界。
  • 字段意外换类型:按契约隔离或拒绝,不静默转换。
  • 修复后重放:由保留的精确证据重建受影响派生键,检查关联后再替换输出。

这些是待执行案例。不要换IP重新处理已经损坏的解析对象。若未保留精确原文,应按授权与目标请求政策重新获取,并标记早先派生输出受影响,不能声称把舍入值转回字符串就已修复。

FAQ与完成清单

JSON有效代表ID完整吗?不代表,语法通过与字段精确保留是两项检查。

所有数字都改成字符串吗?不应如此,要区分标识和数量,并遵循文档契约。

  • 预期清单精确且独立于被测解析器。
  • 有损转换前已捕获原始表示。
  • 不同ID经过关联、存储和重载仍不同。
  • 不支持的精度和意外类型明确失败。
  • 恢复基于精确证据,而非舍入输出。
  • 仅用授权端点和合成记录,公开报告不含凭据、个人资料或真实响应正文。