网站生成手机版,免费网站是如何盈利的,100款应用软件免费大全,wordpress选择菜单当解析 JSON 时#xff0c;使用time.Duration可能是一个繁琐的过程#xff0c;因为它需要在一秒的后面添加 9 个零#xff08;即 1000000000#xff09;。为了简化这个过程#xff0c;我创建了一个名为 Duration 的新类型#xff1a;
type Duration time.Duration为了将…当解析 JSON 时使用time.Duration可能是一个繁琐的过程因为它需要在一秒的后面添加 9 个零即 1000000000。为了简化这个过程我创建了一个名为 Duration 的新类型
type Duration time.Duration为了将字符串如 1s 或 20h5m解析为 int64 类型的持续时间我还为这个新类型实现了自定义的解析逻辑
func (d *Duration) UnmarshalJSON(b []byte) error {var s stringif err : json.Unmarshal(b, s); err ! nil {return err}dur, err : time.ParseDuration(s)if err ! nil {return err}*d Duration(dur)return nil
}需要注意的是变量 d 不应为 nil否则可能会导致编组错误。或者你还可以在函数开头对 ‘d’ 进行检查。