我刚开始使用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值
答案 0 :(得分:1)
如果您的帖子数据为:
,您的requestBody
结构将正确解组
{
"trans_no": "12400099",
"gross_amount": 50000
}
但是由于该信息嵌套得更深,因此您需要在模型中包括该嵌套。
var requestBody struct {
TransactionDetails struct {
TransNo string `json:"trans_no"`
} `json:"transaction_details"`
}