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{})

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2024-02-06 08:40:10
avant
944 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!

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