Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk mendapatkan nilai antara muka{} dalam Go? (Penukaran antara muka: antara muka{} ialah Resp, bukan antara muka peta{})

Bagaimana untuk mendapatkan nilai antara muka{} dalam Go? (Penukaran antara muka: antara muka{} ialah Resp, bukan antara muka peta{})

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-02-06 08:40:10
ke hadapan
952 orang telah melayarinya

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

Kandungan soalan

Menurut soalan ini dan pergi baris pertanyaan pengimbasan kod ke peta[rentetan]antara muka{} sedia ada, saya cuba mendapatkan kunci dan nilai 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"])
  }
}
Salin selepas log masuk

Tetapi saya selalu menghadapi ralat berikut, terima kasih banyak atas cadangan anda.

interface conversion: interface {} is loginresp, not map[string]interface {}
Salin selepas log masuk

Saya juga menampal kod response saya seperti ini:

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


Jawapan betul


Akhirnya, saya mendapat nilai dengan mengikuti kod, menggunakan 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"])
}
        
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan nilai antara muka{} dalam Go? (Penukaran antara muka: antara muka{} ialah Resp, bukan antara muka peta{}). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan