Go反序列化JSON格式化时间
默认得到的序列化后的结果是 {"t":"2018-11-25T20:04:51.362485618+08:00"}, 但如果我想得到 {"t":"2018-11-25 20:04:51"} 该怎么办呢? 方法一 实现 MarshalJSON 接口, 同时可能也需要反序列化, 所以还需要实现 UnmarshalJSON, 以下代码为实现 package main import ( "encoding/json" "fmt" "time" ) type Time struct { T time.Time `json:"t,omitempty"` } func (t *Time) MarshalJSON() ([]byte, error) { type alias Time return json.Marshal(struct { *alias T string `json:"t,omitempty"` }{ alias: (*alias)(t), T: t.T.Format("2006-01-02 15:04:05"), }) } func (t *Time) UnmarshalJSON(data []byte) error { type alias Time tmp := &struct { *alias T string `json:"t,omitempty"` }{ alias: (*alias)(t), } err := json....