授權市場資料請求回傳200,匯入後兩個商品ID卻變成同一個值,應先追查處理邊界,而非立即更換代理。JSON語法有效,仍可能因用戶端把數字轉成浮點值而失去識別碼精度。

本方案針對經代理收到的JSON進行小型受控驗收,聚焦去重和關聯所需的精確識別碼,不涵蓋分頁數量、NDJSON分框或價格運算。樣本為合成資料,不代表已實測98IP相容性或正式環境故障率。

兩個不同識別卡在上方保真路徑維持差異,下方數值轉換路徑卻合併為單一卡片,放大鏡檢視此失真

一、先區別識別碼與數量

向介面負責人確認哪些欄位是不應拆解的ID,哪些才是數量。記錄JSON型別、允許字元、最大長度,以及前置零與大小寫是否有意義。純數字ID不表示需要算術,也不能為配合本機解析器而任意改寫介面契約。

自有API可調整時,明確定義的字串形式通常較易跨執行環境保留。若契約必須回傳JSON整數,就應在一般浮點轉換前選擇保留精確值的解析與儲存流程。不支援的值要明確拒絕或隔離並留下原始證據,不能悄悄取近似值。

MDN列出的JavaScript最大安全整數是9007199254740991,更大的整數並非都能用Number精確區分。這是整數精確處理的限制,不是可表示的最大數值幅度,更不能套用到所有語言與解析器。

二、建立獨立精確樣本

  1. 在自有端點建立兩筆紀錄,數字ID分別為9007199254740992和9007199254740993,另附不同無害標記。
  2. 預期清單將ID原文保存為字串,勿先轉JavaScript Number再產生樣本。
  3. 另外準備字串ID版本、一般小整數,以及僅在契約允許時加入帶前置零的字串。
  4. 列明預期筆數及精確ID對標記關係,兩個大ID必須不同。
  5. 核准基準與代理路徑使用相同樣本版本,並限制請求量與總期限。

這組大整數刻意用來暴露常見不安全轉換,本文沒有宣稱已執行。若樣本產生器已先捨入,尚未經過代理,測試就已失效。

三、在解析前保留回應表示

查核狀態與內容類型,在JSON反序列化前保存有大小上限且經遮蔽的回應表示。確認是否自動解壓,兩條路徑需比較同一層資料,不能一邊雜湊壓縮傳輸位元組,另一邊雜湊解壓正文。

自有確定性樣本可按核准清單比對表示位元組或雜湊。真實資料持續變動時,不能要求兩次獨立請求位元組相同;應以同一次擷取的回應作該次解析參考,並限制對線路的推論。

98IP動態住宅IP產品頁可協助了解授權市場資料線路測試使用的產品,再以API設定頁確認當前接入與帳戶選項。代理不定義目標JSON結構,也不決定用戶端數值精度。

四、追蹤每個轉換邊界

建立五欄:原始回應寫法、解析值與執行時型別、應用程式正規化ID、儲存值與型別、匯出再載入的值。每一欄都對照清單中的精確字串及標記關係,找出不同ID最先變相同的位置。

JSON reviver若收到已捨入的數字,再轉字串或BigInt都無法補回遺失位數。應用合適的無損解析器,或已在指定執行環境驗證支援的原始數值詞元功能,保留轉換前原文,勿假設各版本能力一致。

不要以正規表示式替任意JSON數字批次加引號,可能誤改數量、字串或其他欄位並掩蓋結構錯誤。依契約進行欄位感知解析,型別不符就清楚失敗,勿靜默強制轉型。

原始樣本正確但解析後ID合併,先查解析及轉換;解析精確但資料庫或匯出改值,檢查較後邊界;確定性樣本的原始回應已不同,再查回應產生、中介環節與用戶端正文轉換,不提前斷言代理竄改。

五、驗收關聯及往返結果

畫面顯示兩列不代表去重安全。將每個ID連回預期標記,以約定精確鍵去重,再讀取儲存結果。應保留兩個不同ID及原本標記對應,不僅要求總筆數為二。

契約規定文字鍵時就維持文字,避免下游試算表或ETL匯入器自動轉數字。匯入指定欄位型別,重新開啟後再驗證實際值。顯示格式增加位數,不能還原早已失去的精度。

必要的識別碼正規化須明確定義。唯有目標語義允許時,才能移除前置零或改大小寫,不能將處理數量的數值正規化套用到不應拆解的業務鍵。

六、小型故障及復原矩陣

  • 精確字串ID:解析、儲存及重讀均保留每個字元。
  • 大整數對:無損流程保留兩個ID,或明確拒絕不支援精度。
  • 受控不安全轉型:獨立清單能發現碰撞,不接受捨入結果。
  • 精確解析後注入數值儲存或匯入故障:能定位首次失敗的下游邊界。
  • 欄位型別意外改變:依契約隔離或拒絕,不靜默轉型。
  • 修復後重播:用保留的精確證據重建受影響衍生鍵,驗證關聯後再替換輸出。

以上尚未執行。不要更換IP後繼續處理已損壞的解析物件。缺少精確原文時,依授權及目標請求政策重新取得,並標示先前衍生資料受影響,不能聲稱將捨入值轉回字串便修復。

常見問題與驗收清單

JSON有效就保證ID完整嗎?不保證,語法接納與欄位精確保留是不同檢查。

每個數字都改字串嗎?不應如此,需分清識別碼與數量並遵循文件契約。

  • 預期清單精確且獨立於被測解析器。
  • 有損轉換前已擷取原始表示。
  • 不同ID經關聯、儲存及重載仍不同。
  • 不支援的精度與非預期型別明確失敗。
  • 復原使用精確證據,不使用捨入輸出。
  • 僅用授權端點及合成紀錄,公開報告不含憑證、個資或真實回應正文。