type JSONSample struct { Field string `json:"field"` Omit string `json:"-"` OmitEmpty string `json:"omit_empty,omitempty"` Num int `json:"num,string"` } func main() { sample := JSONSample{ Field: "field", Omit: "omit", OmitEmpty: "", Num: 1, } bytes, _ := json.Marshal(&sample) fmt.Println(string(bytes)) /* -- output { "field": "field", "num":"1" } - omitは省略されています - omit_emptyは値がないので、JSONではフィールドごと省