我正在使用 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>
- 1 回答
- 0 关注
- 96 浏览
添加回答
举报
0/150
提交
取消