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

我正在使用 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


POPMUISE
浏览 66回答 1
1回答

米琪卡哇伊

大小int为 32 位或 64 位,具体取决于您编译和运行的目标体系结构。您的输入5088060240大于 32 位整数的最大值(即2147483647),因此如果您int是 32 位,则会出现此错误。最简单的修复方法是使用int64. 看这个例子:var i int32fmt.Println(json.Unmarshal([]byte("5088060240"), &i))var j int64fmt.Println(json.Unmarshal([]byte("5088060240"), &j))输出(在Go Playground上尝试):json: cannot unmarshal number 5088060240 into Go value of type int32<nil>
打开App,查看更多内容
随时随地看视频慕课网APP