亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

恐慌接口轉換接口 {} 是 float64 而不是 int64

恐慌接口轉換接口 {} 是 float64 而不是 int64

Go
慕容708150 2022-10-24 16:18:50
我收到以下錯誤panic: interface conversion: interface {} is float64, not int64我不確定 float64 來自哪里 我將類型設置為 int64 但不確定 float64 來自哪里type AccessDetails struct {    AccessUuid   string  `json:"access_uuid"`    Email        string  `json:"email"`    Refresh      int64    `json:"refresh"`    Expiry       int64   `json:"expiry"`    Permission   string  `json:"permission"`    Scope        string  `json:"scope"`}func GetAccessDetails(c *fiber.Ctx) (*AccessDetails, error) {    ad := &AccessDetails{}    cookie := c.Cookies("access_token")    var err error    token, err := jwt.Parse(cookie, func(token *jwt.Token) (interface{}, error) {        return []byte(os.Getenv("ACCESS_SECRET")), nil    })    if err != nil {        return nil, err    }    payload := token.Claims.(jwt.MapClaims)        ad.Email = payload["sub"].(string)    ad.AccessUuid = payload["access_uuid"].(string)    ad.Refresh = payload["refresh"].(int64)    ad.Expiry = payload["exp"].(int64)    ad.Permission = payload["permission"].(string)    ad.Scope = payload["scope"].(string)    return ad, nil}錯誤似乎來自ad.Refresh = payload["refresh"].(int64) 我認為我只需要知道如何將類型從 float64 轉換為 int64 的行,反之亦然,用于接口 {}我已經嘗試了一切將類型更改回 int64 的方法,但是我遇到了一個錯誤,現在需要幫助才能繼續前進這是 cookie 中的有效負載數據在 jwt 解碼后的樣子的示例{  "access_uuid": "c307ac76-e591-41d0-a638-6dcc2f963704",  "exp": 1642130687,  "permission": "user",  "refresh": 1642734587,  "sub": "[email protected]"}
查看完整描述

1 回答

?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

ad.Refresh = int64(payload["refresh"].(float64))
ad.Expiry = int64(payload["exp"].(float64))

您需要首先斷言接口值的準確動態類型,然后,如果成功,您可以其轉換為您想要的類型。

請注意,接口值的原因float64是因為這是encoding/json解碼器在將 JSON 數字解組為interface{}值時的默認設置。

為了將 JSON 解組為接口值,Unmarshal 將其中一項存儲在接口值中:

bool, for JSON booleans

float64, for JSON numbers

string, for JSON strings

[]interface{}, for JSON arrays

map[string]interface{}, for JSON objects

nil for JSON null


查看完整回答
反對 回復 2022-10-24
  • 1 回答
  • 0 關注
  • 243 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號