Create a new Decoder from json package and pass the request body to it! Simple, simple, simple.
Try this snippet and enjoy:
type User struct {
Name string `json:"name"`
}
func userHandler(rw http.ResponseWriter, req *http.Request) {
var user User
// A Decoder reads and decodes JSON values from an input stream.
decoder := json.NewDecoder(req.Body)
err := decoder.Decode(&user)
if err != nil {
log.Fatal(err)
}
fmt.Println(user.Name)
}