Golang time.Time.UnmarshalJSON()函数使用示例

Golang time.Time.UnmarshalJSON()函数使用示例

在Go语言中,time包提供确定和查看时间的功能。Go语言中的 UnmarshalJSON() 函数用于实现json.Unmarshaler接口。这里的时间是一个以RFC 3339格式引用的字符串。此外,此函数定义在time包中。您需要导入“time”包才能使用这些函数。

语法:

func (t *Time) UnmarshalJSON(data []byte) error

这里,“t”是指定时间的指针,“data”是表示由MarshalJSON()方法生成的JSON编码的字节片。

返回值: 它解码由MarshalJSON()方法返回的编码,如果发生错误,则返回错误,但如果没有错误,则返回“nil”。

示例1:

// Golang program to illustrate the usage of
// Time.UnmarshalJSON() function
  
// Including main package
package main
  
// Importing fmt and time
import "fmt"
import "time"
  
// Calling main
func main() {
  
    // Defining t for MarshalJSON method
    t := time.Date(2013, 7, 6, 12, 34, 33, 01, time.UTC)
  
    // Calling MarshalJSON() method
    encoding, _ := t.MarshalJSON()
  
    // Defining tm for UnmarshalJSON() method
    var tm time.Time
  
    // Calling UnmarshalJSON method with its parameters
    decode := tm.UnmarshalJSON(encoding)
  
    // Prints output
    fmt.Printf("Error: %v\n", decode)
} 

输出:

Error: <nil>

示例2:

// Golang program to illustrate the usage of
// Time.UnmarshalJSON() function
  
// Including main package
package main
  
// Importing fmt and time
import "fmt"
import "time"
  
// Calling main
func main() {
  
    // Defining t for MarshalJSON method
    t := time.Date(2034, 45, 33, 43, 90, 70, 6447, time.UTC)
  
    // Calling MarshalJSON() method
    encoding, _ := t.MarshalJSON()
  
    // Defining tm for UnmarshalJSON() method
    var tm time.Time
  
    // Calling UnmarshalJSON method with its parameters
    decode := tm.UnmarshalJSON(encoding)
  
    // Prints output
    fmt.Printf("Error: %v\n", decode)
} 

输出:

Error: <nil>

这里,上面代码中的“t”的值超出了正常范围,但在转换时会被规范化。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程