gin 框架可以获取像“map[string]interface{}”这样的 json post 数据,而不是与结构体绑定吗?

Joe*_*Joe 3 go go-gin

正如标题所说,我正在编写一个 API,采用客户端发布的任何 json 数据。
有没有办法直接获取map[string]interface{}类似的类型数据bson.M

我尝试过简单地查找 的属性gin.Context,如果我错过了某些内容,它们中的任何一个都会有帮助吗?

Joe*_*Joe 6

  1. []bytes直接从请求体中 获取
  2. 用于json.Unmarshal()转换[]bytes为类似 JSON 的数据:map[string]interface{}
func GetJsonData(c *gin.Context) {
    data, _ := ioutil.ReadAll(c.Request.Body)
    fmt.Println(string(data))

    var jsonData bson.M  // map[string]interface{}
    data, _ := ioutil.ReadAll(c.Request.Body)
    if e := json.Unmarshal(data, &jsonData); e != nil {
        c.JSON(http.StatusBadRequest, gin.H{"msg": e.Error()})
        return
    }
    c.JSON(http.StatusOK, jsonData)
}
Run Code Online (Sandbox Code Playgroud)