您的位置 首页 golang

如何自定义time.Time类型数据JSON序列化后的默认输出格式

Golang 中 time.Time 类型数据JSON序列化时默认的解析标准是 RFC3339 标准,也即是2006-01-02T15:04:05Z07:00 的格式。

大多数情况下,我们不需要做什么调整,直接使用就好,但是也总有某些情况,我们需要稍微调整下,以适应不同的需求。

分析time.Time类型数据JSON序列化的原理可知,这一过程需要使用到time.Time下的MarshalJSON函数。这也就是说,如果我们可以重写这个方法,那就可以实现输出格式的自定义化了。

如下是我们的测试案例:

从图中可以看出,我们成功自定义了时间的序列化格式。这说明,这种通过定义别名,重写方法的方式是有效的。

其实,实际上,这种方式不仅仅在这里凑效,在反序列化时也同样可以。只是我们要根据不同的目的,重写不同的方法而已。

如下是通过重写UnmarshalJSON和String,来实现反序列化的示例。

从图中我们可以看到,Json字符串成功地被转换成了一个包含CustomTime类型属性的结构体。

实际上,如果你有在使用Gorm库,那我们还可以重写Value、Scan方法,以实现对数据库时间的格式化。

大家可以试试。

文章来源:智云一二三科技

文章标题:如何自定义time.Time类型数据JSON序列化后的默认输出格式

文章地址:https://www.zhihuclub.com/86241.shtml

关于作者: 智云科技

热门文章

网站地图