go
type_error
ai_generated
true
json: 无法将数字反序列化为 Go 结构体字段 Age 的字符串类型
json: cannot unmarshal number into Go struct field Age of type string
ID: go/encoding-json-type-mismatch
80%修复率
86%置信度
0证据数
2024-03-02首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 1.20 | active | — | — | — |
根因分析
JSON 数据包含数字值,而 Go 结构体期望字符串,导致反序列化时类型不匹配。
English
The JSON data contains a numeric value where the Go struct expects a string, causing a type mismatch during unmarshaling.
解决方案
-
85% 成功率
type Person struct { Age string `json:"age"` }; var p Person; if err := json.Unmarshal(data, &p); err != nil { ... }; // or use custom UnmarshalJSON
无效尝试
常见但无效的做法:
-
80% 失败
Loses type safety and requires manual type assertions, increasing complexity.
-
90% 失败
Silently drops data, leading to incorrect application behavior.