Maison  >  Article  >  développement back-end  >  Comment obtenir la valeur de interface{} dans Go ? (Conversion d'interface : interface{} est Resp, pas mapinterface{})

Comment obtenir la valeur de interface{} dans Go ? (Conversion d'interface : interface{} est Resp, pas mapinterface{})

WBOY
WBOYavant
2024-02-06 08:40:10858parcourir

Go中如何获取interface{}的值? (接口转换:interface{}是Resp,不是mapinterface{})

Contenu de la question

Selon cette question et allez la ligne de requête d'analyse de code vers l'interface map[string]{} existante en go, j'essaie d'obtenir la clé et la valeur de data["id"]

func login() func(c *lmhttp.context, code int, data interface{}) (int, interface{}) {
    return func(c *lmhttp.context, code int, data interface{}) (int, interface{}) {
    map_data := data.(map[string]interface{})
    fmt.print(map_data, map_data["id"])
  }
}

Mais je rencontre toujours l'erreur suivante, merci beaucoup pour vos suggestions.

interface conversion: interface {} is loginresp, not map[string]interface {}

J'ai aussi collé mon response code comme ceci :

func (c *Context) Response(data interface{}) {
    c.result(http.StatusOK, data)
}

Bonne réponse


Enfin, j'obtiens la valeur par le code ci-dessous, en utilisant marshal获取json数据,然后mapunmarshalit,

json_str, jsonErr := json.Marshal(data)
if json_str != nil {
    fmt.Printf("%v", jsonErr)
}
m := make(map[string]interface{})
err := json.Unmarshal([]byte(json_str), &m)
if err != nil {
    fmt.Println(err)
    fmt.Println("This is ID", m["id"])
}
        

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer