JSON的大整數為什麼會改變

訂單ID即使符合JSON語法,轉換為JavaScript Number時仍可能改變。格式整理不同於數值運算。範例使用9007199254740993,比最大安全整數大1。

輸入與結果

JSON{"id":9007199254740993}
JSON.parse(...).id9007199254740992
Apps24{ "id": 9007199254740993 }

理解結果

JSON.parse會得到9007199254740992。Apps24驗證語法後只調整原始標記之間的空白,保留數字位數。這是保留原文,不代表所有接收程式都能精確計算。驗證成功不表示API結構、必填欄位或重複鍵符合要求。

下一步

貼上範例並比較格式化前後的ID。若它是識別碼而不是金額,可與API負責人約定使用{"id":"9007199254740993"}等字串格式。不要隨意替所有數字加引號,這會改變資料型別。也應檢查接收程式與資料庫的儲存型別。

使用工具

限制與測試條件

回歸測試核對了數字、重複鍵、指數和字串內的空白。工具不會修復無效JSON,也不執行任意精度運算。請勿輸入正式環境的金鑰或權杖。

參考來源

Apps24透過實作程式碼與回歸測試核對範例。瀏覽器實驗會說明條件,但不保證所有裝置的結果。回報錯誤時請提供網址、範例輸入、預期結果與瀏覽器。請勿傳送密碼、私人文件或個人資料。