JSON的大整數為什麼會改變
訂單ID即使符合JSON語法,轉換為JavaScript Number時仍可能改變。格式整理不同於數值運算。範例使用9007199254740993,比最大安全整數大1。
輸入與結果
JSON | {"id":9007199254740993} |
JSON.parse(...).id | 9007199254740992 |
Apps24 | { "id": 9007199254740993 } |
理解結果
JSON.parse會得到9007199254740992。Apps24驗證語法後只調整原始標記之間的空白,保留數字位數。這是保留原文,不代表所有接收程式都能精確計算。驗證成功不表示API結構、必填欄位或重複鍵符合要求。
下一步
貼上範例並比較格式化前後的ID。若它是識別碼而不是金額,可與API負責人約定使用{"id":"9007199254740993"}等字串格式。不要隨意替所有數字加引號,這會改變資料型別。也應檢查接收程式與資料庫的儲存型別。
使用工具限制與測試條件
回歸測試核對了數字、重複鍵、指數和字串內的空白。工具不會修復無效JSON,也不執行任意精度運算。請勿輸入正式環境的金鑰或權杖。
參考來源
Apps24透過實作程式碼與回歸測試核對範例。瀏覽器實驗會說明條件,但不保證所有裝置的結果。回報錯誤時請提供網址、範例輸入、預期結果與瀏覽器。請勿傳送密碼、私人文件或個人資料。