package types import ( "database/sql" "encoding/json" "fmt" "time" ) type NullTime struct { sql.NullTime } func (v NullTime) MarshalJSON() ([]byte, error) { if v.Valid { return json.Marshal(v.Time) } else { return json.Marshal(nil) } } func (v *NullTime) UnmarshalJSON(data []byte) error { var s *time.Time if err := json.Unmarshal(data, &s); err != nil { return err } if s != nil { v.Valid = true v.Time = *s fmt.Println(s) } else { v.Valid = false } return nil }