登录
首页 >  Golang >  Go教程

JSON 转 Struct 时,如何将字符串转换为 time.Duration?

时间:2024-11-02 15:58:09 381浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《JSON 转 Struct 时,如何将字符串转换为 time.Duration?》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

JSON 转 Struct 时,如何将字符串转换为 time.Duration?

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?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>