📅  最后修改于: 2023-12-03 15:15:22.934000             🧑  作者: Mango
time.Time.UnmarshalJSON()
函数示例在 Golang 中,time.Time.UnmarshalJSON()
函数用于将 JSON 字符串解析为 time.Time
类型的值。该函数常用于从外部数据源获取日期时间数据,并将其转换为可操作的时间对象。
func (t *Time) UnmarshalJSON(data []byte) error
data []byte
:待解析的 JSON 字符串。error
:解析过程中的错误,如果解析成功则为 nil
。下面是一个示例,展示了如何使用 time.Time.UnmarshalJSON()
函数解析 JSON 字符串,并处理异常情况:
package main
import (
"encoding/json"
"fmt"
"time"
)
func main() {
jsonStr := `{"timestamp": "2022-01-01T12:34:56Z"}`
type Data struct {
Timestamp time.Time `json:"timestamp"`
}
var d Data
err := json.Unmarshal([]byte(jsonStr), &d)
if err != nil {
fmt.Println("解析失败:", err)
return
}
fmt.Println("解析成功,时间为:", d.Timestamp)
}
Data
,其中包含一个 time.Time
类型的字段 Timestamp
。结构体字段的 json
tag 定义了对应 JSON 字段的名称。jsonStr
,其中包含一个名为 timestamp
的字段,其值是一个日期时间字符串。json.Unmarshal()
函数解析 JSON 字符串,并传递要解析的结果对象的指针 &d
。time.Time.UnmarshalJSON()
函数会自动将 JSON 字符串中的日期时间值转换为 time.Time
类型的值,并赋给 Data
结构体中的 Timestamp
字段。d.Timestamp
访问解析后的时间值。RFC3339
标准的日期时间格式。time.Time.UnmarshalJSON()
函数会返回一个解析错误。Timestamp
字段将被设置为 time.Time
类型的零值。以上是关于在 Golang 中使用 time.Time.UnmarshalJSON()
函数的介绍和示例。通过这个函数,我们可以方便地将外部数据源中的 JSON 字符串转换为实际可操作的时间对象。