我正在使用 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 關注
- 130 瀏覽
添加回答
舉報
0/150
提交
取消