Gin 如何接受表单中的字典(Map)参数

如果查询字符串参数或 POST 表单参数是一个字典(Map),我们要怎么获取呢?

POST /post?ids[a]=1234&ids[b]=hello HTTP/1.1
Content-Type: application/x-www-form-urlencoded

names[first]=thinkerou&names[second]=tianou

一般情况下我们都不会有这种需求,但是,但是 Gin 竟然提供了,真的很赞啊。

Gin 提供了 c.QueryMap() 用于获取字典形式的查询字符串参数,提供了 c.PostFormMap() 用于获取字典形式的 POST 表单参数。

这两个函数的用法和 c.Query() 以及 c.PostForm() 差不多,只不过返回的值是一个 map[string]string 类型

不过需要注意的是,如果参数不存在,返回的是一个空 Map。

示例代码如下

package main

import (
    "fmt"

    "github.com/gin-gonic/gin"
)

func main() {
    router := gin.Default()

    router.POST("/post", func(c *gin.Context) {

        ids := c.QueryMap("ids")
        names := c.PostFormMap("names")

        fmt.Printf("ids: %v; names: %v", ids, names)
    })
    router.Run(":8080")
}

运行结果如下

ids: map[b:hello a:1234]; names: map[second:tianou first:thinkerou]
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.