1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-19 21:29:42 +02:00

WriteJSON method

This commit is contained in:
Harvey Kandola 2016-07-25 17:32:46 -07:00
parent 56fe047136
commit 170c20c8bc

View file

@ -12,6 +12,7 @@
package util package util
import ( import (
"encoding/json"
"fmt" "fmt"
"net/http" "net/http"
@ -124,3 +125,27 @@ func WriteSuccessEmptyJSON(w http.ResponseWriter) {
_, err := w.Write([]byte("{}")) _, err := w.Write([]byte("{}"))
log.IfErr(err) log.IfErr(err)
} }
func WriteMarshalError(w http.ResponseWriter, err error) {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.WriteHeader(http.StatusBadRequest)
_, err2 := w.Write([]byte("{Error: 'JSON marshal failed'}"))
log.IfErr(err2)
log.Error("Failed to JSON marshal", err)
}
// WriteJSON serializes data as JSON to HTTP response.
func WriteJSON(w http.ResponseWriter, v interface{}) {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.WriteHeader(http.StatusOK)
j, err := json.Marshal(v)
if err != nil {
WriteMarshalError(w, err)
return
}
_, err = w.Write(j)
log.IfErr(err)
}