Gin把傳入的請求payload JSON轉為map。
範例環境:
- Go 1.16
- Gin 1.7.2
範例
參考「Golang Gin 轉Request body JSON為struct」範例中是把JSON轉為struct:若要轉JSON為map
只要把map[string]interface{}
變數指標傳入gin.Context.Bind()
即可。
main.go
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.POST("/employee", demoHandler)
router.Run(":8080")
}
func demoHandler(c *gin.Context) {
var m map[string]interface{}
err := c.Bind(&m)
if err != nil {
return
}
fmt.Printf("%v\n", m)
c.JSON(200, "success")
}
測試
在命令列以cURL傳入JSON如下。
curl -X POST "http://localhost:8080/employee" \
-H 'content-type: application/json' \
-d '{"id": 100, "name": "HR", "employees": [{"id": 1, "name": "John", "age": 33}, {"id": 2, "name": "Mary", "age": 28}]}'
執行後會在console印出轉換後的map變數m
內容,屬性順序不定。
map[employees:[map[age:33 id:1 name:John] map[age:28 id:2 name:Mary]] id:100 name:HR]
如果覺得文章有幫助的話還幫忙點個Google廣告,感恩。
沒有留言:
張貼留言