У меня есть ответ json от API: map[message:Login Success. userid:1]
Сервер:
c.JSON(200, gin.H{"message": "Login Success.", "userid": 1})
Клиент:
var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
msg, ok := result["message"].(string)
if !ok {
msg = "Something went wrong."
}
userID, ok := result["userid"].(int)
if !ok {
userID = 0
}
Но userID, ok := result["userid"].(int)
всегда терпит неудачу.Я даже пытался использовать:
switch v := x.(type) {
case nil:
fmt.Println("x is nil")
case int:
fmt.Println("x is", v)
case bool, string:
fmt.Println("x is bool or string")
default:
fmt.Println("type unknown")
}
И это просто дало мне неизвестно .Почему целое число не воспринимается как целое число?
Похоже, что значение трактуется как float64
.