2 回答

TA貢獻1875條經驗 獲得超3個贊
看起來你的憑證文件是錯誤的(它需要使用鍵 application_id 和 application_key - Go 足夠聰明來計算大寫,但不是下劃線):
{
"Username": "myUsername",
"Password": "myPassowrd",
"application_id": "someID",
"application_key": "someString"
}

TA貢獻1845條經驗 獲得超8個贊
基于示例文件,你在 Go 中的結構應該是這樣的;
type Credentials struct {
Username string `json:"Username"`
Password string `json:"Password"`
ApplicationId string `json:"ApplicationId"`
ApplicationKey string `json:"ApplicationKey"`
}
您也可以從另一端處理此問題,并將文件中的條目修改為如下所示;
{
"Username": "myUsername",
"Password": "myPassowrd",
"application_id": "someID",
"application_key": "someString"
}
但是,更常見的情況是您無法更改接收的數據(例如調用第三方 API 時),因此您通常最終會更改源。由于您控制文件并且 API 需要小寫,我建議更改文件內容以匹配您發送 API 的內容。有時需要的另一個選項是使用另一種類型并提供轉換幫助程序(假設您既不控制文件也不控制 API,則每個類型都需要不同的類型)。Go 編碼包非常嚴格。您可能已經習慣了 json.NET 之類的東西,它會分配接近的匹配項,但這里的情況并非如此。任何不完全匹配的東西都會產生一個錯誤Unmarshal。
- 2 回答
- 0 關注
- 303 瀏覽
添加回答
舉報