为了账号安全,请及时绑定邮箱和手机立即绑定

json:无法将数字 5088060241 解组为 int 类型的结构

json:无法将数字 5088060241 解组为 int 类型的结构

Go
POPMUISE 2023-08-07 14:44:14
我正在使用 OVH 提供程序开发 Terraform 项目,创建记录时,提供程序无法获取记录的 ID 并触发此错误: cannot unmarshal number 5088060240 into Go struct field OvhDomainZoneRecord.id of type int我在 github 存储库上提出了一个问题,但仍在等待答案。我想自己纠正这个问题,但我不是 Go 开发人员,我找不到任何相关的错误。OvhDomainZoneRecord 的结构:type OvhDomainZoneRecord struct {    Id        int    `json:"id,omitempty"`    Zone      string `json:"zone,omitempty"`    Target    string `json:"target"`    Ttl       int    `json:"ttl,omitempty"`    FieldType string `json:"fieldType"`    SubDomain string `json:"subDomain,omitempty"`}相关文件: https://github.com/terraform-providers/terraform-provider-ovh/blob/master/ovh/resource_ovh_domain_zone_record.go
查看完整描述

1 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

大小int为 32 位或 64 位,具体取决于您编译和运行的目标体系结构。您的输入5088060240大于 32 位整数的最大值(即2147483647),因此如果您int是 32 位,则会出现此错误。


最简单的修复方法是使用int64. 看这个例子:


var i int32

fmt.Println(json.Unmarshal([]byte("5088060240"), &i))


var j int64

fmt.Println(json.Unmarshal([]byte("5088060240"), &j))

输出(在Go Playground上尝试):


json: cannot unmarshal number 5088060240 into Go value of type int32

<nil>


查看完整回答
反对 回复 2023-08-07
  • 1 回答
  • 0 关注
  • 64 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信