Open2

GoのAPIでnullや0値になったjsonレスポンスを非表示にしたい

Soya SanoSoya Sano

GoでAPIを使用した時に、↓のようなnullが入っている要素を非表示にしたい

{"id":null,"name":null,"address":null,"code":"ERROR"}
type Response struct {
	Id            float64 `json:"id"`
	Name             string  `json:"name"`
	Address          string  `json:"address"`
	Code             string  `json:"code"`
}

func NewResponse() string {
        // ↓このように結果コードのみを渡した場合に、
        // {"code":"ERROR"} のように必要のない要素を非表示にしたい
        response := Response{Code:"ERROR"}
	resBytes, _ := json.Marshal(res)
	return string(resBytes)
}
Soya SanoSoya Sano

解決策1 structタグを使用

structタグでomitempty を使用すればゼロ値になった要素は非表示になる

json:"field,omitempty"