go data_error ai_generated true

错误:json:无法将数字 99999999999999999999 解组为 int64 类型的 Go 值

error: json: cannot unmarshal number 99999999999999999999 into Go value of type int64

ID: go/encoding-json-unmarshal-number-overflow

其他格式: JSON · Markdown 中文 · English
80%修复率
82%置信度
0证据数
2026-07-20首次发现

版本兼容性

版本状态引入弃用备注
1.20 active
1.21 active

根因分析

JSON数字超出目标Go整数类型的范围,导致溢出。

English

A JSON number exceeds the range of the target Go integer type, causing overflow.

generic

解决方案

  1. 90% 成功率 Use json.Number or big.Int for large numbers
    var num json.Number
    if err := json.Unmarshal(data, &num); err != nil { return err }
    intVal, _ := num.Int64()

无效尝试

常见但无效的做法:

  1. Using float64 to store large numbers 50% 失败

    May lose precision for very large integers; use big.Int or string.