授權市場資料請求回傳200,匯入後兩個商品ID卻變成同一個值,應先追查處理邊界,而非立即更換代理。JSON語法有效,仍可能因用戶端把數字轉成浮點值而失去識別碼精度。
本方案針對經代理收到的JSON進行小型受控驗收,聚焦去重和關聯所需的精確識別碼,不涵蓋分頁數量、NDJSON分框或價格運算。樣本為合成資料,不代表已實測98IP相容性或正式環境故障率。
一、先區別識別碼與數量
向介面負責人確認哪些欄位是不應拆解的ID,哪些才是數量。記錄JSON型別、允許字元、最大長度,以及前置零與大小寫是否有意義。純數字ID不表示需要算術,也不能為配合本機解析器而任意改寫介面契約。
自有API可調整時,明確定義的字串形式通常較易跨執行環境保留。若契約必須回傳JSON整數,就應在一般浮點轉換前選擇保留精確值的解析與儲存流程。不支援的值要明確拒絕或隔離並留下原始證據,不能悄悄取近似值。
MDN列出的JavaScript最大安全整數是9007199254740991,更大的整數並非都能用Number精確區分。這是整數精確處理的限制,不是可表示的最大數值幅度,更不能套用到所有語言與解析器。
二、建立獨立精確樣本
- 在自有端點建立兩筆紀錄,數字ID分別為9007199254740992和9007199254740993,另附不同無害標記。
- 預期清單將ID原文保存為字串,勿先轉JavaScript Number再產生樣本。
- 另外準備字串ID版本、一般小整數,以及僅在契約允許時加入帶前置零的字串。
- 列明預期筆數及精確ID對標記關係,兩個大ID必須不同。
- 核准基準與代理路徑使用相同樣本版本,並限制請求量與總期限。
這組大整數刻意用來暴露常見不安全轉換,本文沒有宣稱已執行。若樣本產生器已先捨入,尚未經過代理,測試就已失效。
三、在解析前保留回應表示
查核狀態與內容類型,在JSON反序列化前保存有大小上限且經遮蔽的回應表示。確認是否自動解壓,兩條路徑需比較同一層資料,不能一邊雜湊壓縮傳輸位元組,另一邊雜湊解壓正文。
自有確定性樣本可按核准清單比對表示位元組或雜湊。真實資料持續變動時,不能要求兩次獨立請求位元組相同;應以同一次擷取的回應作該次解析參考,並限制對線路的推論。
98IP動態住宅IP產品頁可協助了解授權市場資料線路測試使用的產品,再以API設定頁確認當前接入與帳戶選項。代理不定義目標JSON結構,也不決定用戶端數值精度。
四、追蹤每個轉換邊界
建立五欄:原始回應寫法、解析值與執行時型別、應用程式正規化ID、儲存值與型別、匯出再載入的值。每一欄都對照清單中的精確字串及標記關係,找出不同ID最先變相同的位置。
JSON reviver若收到已捨入的數字,再轉字串或BigInt都無法補回遺失位數。應用合適的無損解析器,或已在指定執行環境驗證支援的原始數值詞元功能,保留轉換前原文,勿假設各版本能力一致。
不要以正規表示式替任意JSON數字批次加引號,可能誤改數量、字串或其他欄位並掩蓋結構錯誤。依契約進行欄位感知解析,型別不符就清楚失敗,勿靜默強制轉型。
原始樣本正確但解析後ID合併,先查解析及轉換;解析精確但資料庫或匯出改值,檢查較後邊界;確定性樣本的原始回應已不同,再查回應產生、中介環節與用戶端正文轉換,不提前斷言代理竄改。
五、驗收關聯及往返結果
畫面顯示兩列不代表去重安全。將每個ID連回預期標記,以約定精確鍵去重,再讀取儲存結果。應保留兩個不同ID及原本標記對應,不僅要求總筆數為二。
契約規定文字鍵時就維持文字,避免下游試算表或ETL匯入器自動轉數字。匯入指定欄位型別,重新開啟後再驗證實際值。顯示格式增加位數,不能還原早已失去的精度。
必要的識別碼正規化須明確定義。唯有目標語義允許時,才能移除前置零或改大小寫,不能將處理數量的數值正規化套用到不應拆解的業務鍵。
六、小型故障及復原矩陣
- 精確字串ID:解析、儲存及重讀均保留每個字元。
- 大整數對:無損流程保留兩個ID,或明確拒絕不支援精度。
- 受控不安全轉型:獨立清單能發現碰撞,不接受捨入結果。
- 精確解析後注入數值儲存或匯入故障:能定位首次失敗的下游邊界。
- 欄位型別意外改變:依契約隔離或拒絕,不靜默轉型。
- 修復後重播:用保留的精確證據重建受影響衍生鍵,驗證關聯後再替換輸出。
以上尚未執行。不要更換IP後繼續處理已損壞的解析物件。缺少精確原文時,依授權及目標請求政策重新取得,並標示先前衍生資料受影響,不能聲稱將捨入值轉回字串便修復。
常見問題與驗收清單
JSON有效就保證ID完整嗎?不保證,語法接納與欄位精確保留是不同檢查。
每個數字都改字串嗎?不應如此,需分清識別碼與數量並遵循文件契約。
- 預期清單精確且獨立於被測解析器。
- 有損轉換前已擷取原始表示。
- 不同ID經關聯、儲存及重載仍不同。
- 不支援的精度與非預期型別明確失敗。
- 復原使用精確證據,不使用捨入輸出。
- 僅用授權端點及合成紀錄,公開報告不含憑證、個資或真實回應正文。