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中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com