I want to change my current function to return empty JSON list, currently it returns nil.
This is my current code:
func (s *Service) pro
A nil slice encodes to a null JSON object. This is documented at json.Marshal():
Array and slice values encode as JSON arrays, except that []byte encodes as a base64-encoded string, and a nil slice encodes as the null JSON value.
If you want a non-null empty JSON array, use a non-nil empty Go slice.
See this example:
type Project struct {
Name string `json:"name"`
}
enc := json.NewEncoder(os.Stdout)
var ps []*Project
enc.Encode(ps)
ps = []*Project{}
enc.Encode(ps)
Output (try it on the Go Playground):
null
[]
So in your case make sure projects is not nil, for example:
projects = ps
if projects == nil {
projects = []*models.Project{}
}