Maison > Article > développement back-end > Comment obtenir la valeur de interface{} dans Go ? (Conversion d'interface : interface{} est Resp, pas mapinterface{})
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) }
Enfin, j'obtiens la valeur par le code ci-dessous, en utilisant marshal
获取json
数据,然后map
和unmarshal
it,
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!