尝试 json Marshall 一个包含2个时间字段的结构。但是我只希望字段在有时间值的情况下通过。所以我使用 json:",omitempty"
,但它不工作。
我可以将 Date 值设置为什么。Marshall 会把它当作一个空(零)值,而不把它包含在 json 字符串中吗?
操场: http://play.golang.org/p/QJwh7yBJlo
实际成果:
{“ Timestamp”: “2015-09-18T00:00:00Z”,“ Date”: “0001-01-01T00:00Z”}
预期结果:
{“时间戳”: “2015-09-18 T00:00:00Z”}
密码:
package main
import (
"encoding/json"
"fmt"
"time"
)
type MyStruct struct {
Timestamp time.Time `json:",omitempty"`
Date time.Time `json:",omitempty"`
Field string `json:",omitempty"`
}
func main() {
ms := MyStruct{
Timestamp: time.Date(2015, 9, 18, 0, 0, 0, 0, time.UTC),
Field: "",
}
bb, err := json.Marshal(ms)
if err != nil {
panic(err)
}
fmt.Println(string(bb))
}