就是最近想学 GIN, 然后网上找了资料,说用 ShouldBindJSON() 去解析 JSON, 自己敲了运行了,但是没得想要的结果啊。查的类似教程也是这套代码。
go version go1.17 linux/amd64
import (
"github.com/gin-gonic/gin"
"fmt"
"net/http"
)
type TestJson struct{
id string `from:"id" json:"id" binding:"required"`
page string `from:"page" json:"page" binding:"required"`
}
func handle_post(c *gin.Context){
// json := make(map[string]interface{})
var test_json TestJson
// c.BindJSON(&json)
// c.ShouldBindJSON(&test_json)
if err := c.ShouldBindJSON(&test_json); err !=nil {
c.AbortWithStatusJSON(
http.StatusInternalServerError,
gin.H{"error": err.Error()})
return
}
fmt.Printf("%v\n", test_json)
fmt.Printf("id:%s; page:%s\n", test_json.id, test_json.page)
c.JSON( http.StatusOK, gin.H{"msg" : "OK"})
return
}
func main() {
router := gin.Default()
router.POST("/from_post", handle_post)
router.Run(":8080")
}
[GIN-debug] Listening and serving HTTP on :8080
{ }
id:; page:
[GIN] 2021/08/30 - 23:11:03 | 200 | 157.946µs | 212.103.62.124 | POST "/from_post"
我发送 JSON 为 {"id":"123456", "page":"4"}
后台没得到数据啊~
先谢谢各位了~ :blush:
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.