Maison > développement back-end > Golang > 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
Libérer: 2024-02-06 08:40:10
avant
899 Les gens l'ont consulté

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"])
  }
}
Copier après la connexion

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

interface conversion: interface {} is loginresp, not map[string]interface {}
Copier après la connexion

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

func (c *Context) Response(data interface{}) {
    c.result(http.StatusOK, data)
}
Copier après la connexion


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"])
}
        
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal