json.go 445 B

123456789101112131415161718192021222324252627
  1. package httputil
  2. import (
  3. "encoding/json"
  4. "net/http"
  5. )
  6. const (
  7. JSONContentType = "application/json"
  8. )
  9. func WriteJSONResponse(w http.ResponseWriter, code int, resp interface{}) error {
  10. enc, err := json.Marshal(resp)
  11. if err != nil {
  12. w.WriteHeader(http.StatusInternalServerError)
  13. return err
  14. }
  15. w.Header().Set("Content-Type", JSONContentType)
  16. w.WriteHeader(code)
  17. _, err = w.Write(enc)
  18. if err != nil {
  19. return err
  20. }
  21. return nil
  22. }