我正在使用 OVH 提供程序開(kāi)發(fā) Terraform 項(xiàng)目,創(chuàng)建記錄時(shí),提供程序無(wú)法獲取記錄的 ID 并觸發(fā)此錯(cuò)誤: cannot unmarshal number 5088060240 into Go struct field OvhDomainZoneRecord.id of type int我在 github 存儲(chǔ)庫(kù)上提出了一個(gè)問(wèn)題,但仍在等待答案。我想自己糾正這個(gè)問(wèn)題,但我不是 Go 開(kāi)發(fā)人員,我找不到任何相關(guān)的錯(cuò)誤。OvhDomainZoneRecord 的結(jié)構(gòu):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"`}相關(guān)文件: https://github.com/terraform-providers/terraform-provider-ovh/blob/master/ovh/resource_ovh_domain_zone_record.go
1 回答

米琪卡哇伊
TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
大小int為 32 位或 64 位,具體取決于您編譯和運(yùn)行的目標(biāo)體系結(jié)構(gòu)。您的輸入5088060240大于 32 位整數(shù)的最大值(即2147483647),因此如果您int是 32 位,則會(huì)出現(xiàn)此錯(cuò)誤。
最簡(jiǎn)單的修復(fù)方法是使用int64. 看這個(gè)例子:
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 關(guān)注
- 138 瀏覽
添加回答
舉報(bào)
0/150
提交
取消