網頁

2021/8/9

Golang Gin 轉Request body JSON為map

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")
}

github



測試

在命令列以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廣告,感恩。


沒有留言:

張貼留言