如何在 golang 中访问映射值

当我执行请求时,它会发送如下内容。POSTraw-data


products%5B%22producs-1%22%5D%5B%22pink%22%5D%3D1%26products%5B%22products-2%22%5D%5B%22black%22%5D%3D2%26products%5B%22products-3%22%5D%5B%22green%22%5D%3D2%27

当我做URL ParseQuery时,它会显示如下输出:


    body, err := ioutil.ReadAll(r.Body)

    if err != nil {

        panic(err)

    }

    fmt.Println(string(body))

    params, _ := url.ParseQuery(string(body))

    fmt.Println(params)

map[products["products-1"]["black"]:[2] products["products-2"]["green"]:[2] products["products-3"]["pink"]:[1]]

我想访问产品-1,黑色,2(其他字段),我该怎么做?


慕婉清6462132
浏览 79回答 2
2回答

慕斯王

这是一种相当奇怪的格式,看起来它期待一个PHP脚本。或者其他一些脚本语言。ParseQuery 函数制作了一个映射,但关键是一个字符串,看起来像“products[”products-2“][”green“]”我认为最好有一个包含“属性”映射或类似内容的“产品”映射。我不知道如何在没有很多努力的情况下到达那里

回首忆惘然

尝试按键循环以获取什么是键:  for k, v := range params {     fmt.Printf("key[%s] value[%s]\n", k, v)  }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go