在Golang中获取帖子请求失败

时间:2019-06-18 04:11:21

标签: go

我刚开始使用Go,但是在Go上如何获取发布请求时遇到了问题。我正在搜索,但仍然无法解决问题

我正在尝试json.Unmarshal(),但仍无法正常工作

package controllers

import (
    "encoding/json"
    "net/http"

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

//CreateOrder function
func CreateOrder(c *gin.Context) {

    var requestBody struct {
        TransNo string `json:"trans_no"`
    }

    err := json.NewDecoder(c.Request.Body).Decode(&requestBody)

    if err != nil {
        panic(err)
    }

    c.JSON(http.StatusOK, gin.H{"data": requestBody.TransNo})

}

我没有任何错误,但结果未显示任何内容。

这是我的帖子数据:

{
  "transaction_details": {
    "trans_no": "12400099",
    "gross_amount": 50000
  }
}

我不会得到trans_no值

1 个答案:

答案 0 :(得分:1)

如果您的帖子数据为:

,您的requestBody结构将正确解组
{
    "trans_no": "12400099",
    "gross_amount": 50000
}

但是由于该信息嵌套得更深,因此您需要在模型中包括该嵌套。

var requestBody struct {
    TransactionDetails struct {
        TransNo string `json:"trans_no"`
    } `json:"transaction_details"`
}