json 转 struct 时,如何将字符串转换为 time.duration?
在 go 语言中,我们会遇到将 json 数据转换成 struct 的场景。在这个过程中,我们可能需要将字符串转换为 time.duration 类型。以下是解决这个问题的两种方法:
方法 1:使用 int64 类型
time.duration 是一个 int64 类型,因此我们可以直接使用 int64 类型的字段来存储字符串表示的 time.duration。
import "time" type student struct { tim int64 `json:"time"` }
方法 2:自定义 struct 并实现 unmarshaljson
如果希望使用 time.duration 类型的字段,但无法修改原始 struct 定义,可以创建一个自定义 struct 并实现 unmarshaljson 方法。
import "time" type MyDuration struct { time.Duration } func (d *MyDuration) UnmarshalJSON(data []byte) error { // 解析字符串为 time.Duration duration, err := time.ParseDuration(string(data)) if err != nil { return err } d.Duration = duration return nil } type Student struct { Tim MyDuration `json:"time"` }
以上就是JSON 转 Struct 时,如何将字符串转换为 time.Duration?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号