在Go語言中,我們可以使用net/http包獲取POST請求中的JSON數據。以下是一個簡單的示例:
package main
import (
"fmt"
"log"
"net/http"
"encoding/json"
)
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
http.HandleFunc("/user", getUser)
log.Fatal(http.ListenAndServe(":8080", nil))
}
func getUser(w http.ResponseWriter, r *http.Request) {
decoder := json.NewDecoder(r.Body)
var user User
err := decoder.Decode(&user)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
fmt.Fprintf(w, "Name: %s, Age: %d", user.Name, user.Age)
}
在這個示例中,我們定義了一個User類型,它包含名字和年齡。在main函數中,我們啟動了一個HTTP服務器,并在/user路由上注冊了getUser函數。
getUser函數通過r.Body獲取POST請求的JSON數據。然后使用json.NewDecoder將JSON數據解析為User類型的實例,并將其逐個賦值給變量user。如果解析失敗,則返回BadRequest狀態。
最后,我們可以使用fmt.Fprintf函數在HTTP響應中顯示用戶的名字和年齡。