Golang time.Time.MarshalJSON() 函数及示例

Golang time.Time.MarshalJSON() 函数及示例

在Go语言中,time包提供了确定时间以及查看时间的功能。在Go语言中, MarshalJSON() 函数用于实现json.Marshaler接口。时间是在RFC 3339格式下的带有子秒精度的带引号字符串。此外,该函数在time包中定义。在使用这些函数之前,需要导入“time”包。

语法:

func (t Time) MarshalJSON() ([]byte, error)

在这里,“t”是声明的时间,在此方法中返回两个类型为“byte”和“error”的值作为输出。

返回值:

它返回表示JSON编码的字节切片,并返回发生的错误,但如果没有错误,则返回“nil”。

示例1:

// Golang程序演示如何使用MarshalJSON()方法
  
// 包含主要包
package main
  
// 导入fmt和time
import "fmt"
import "time"
  
// 调用主函数
func main() {
  
    // 定义t以使用MarshalJSON()方法
    t := time.Date(2014, 11, 10, 14, 30, 12, 05, time.UTC)
  
    // 调用MarshalJSON()方法
    encoding, error := t.MarshalJSON()
  
    // 打印JSON编码
    fmt.Printf("JSON's encoding: %v\n", encoding)
  
    // 打印错误
    fmt.Printf("Error occurred: %v\n", error)
} 

输出:

JSON编码:[34 50 48 49 52 45 49 49 45 49 48 84 49 52 58 51 48 58 49 50 46 48 48 48 48 48 48 48 48 53 90 34]
发生的错误:

示例2:

// Golang程序演示如何使用MarshalJSON()方法
  
// 包含主要包
package main
  
// 导入fmt和time
import "fmt"
import "time"
  
// 调用主函数
func main() {
  
    // 定义t以使用MarshalJSON()方法
    t := time.Date(2022, 45, 67, 88, 67, 76, 903, time.UTC)
  
    // 调用MarshalJSON()方法
    encoding, error := t.MarshalJSON()
  
    // 打印JSON编码
    fmt.Printf("JSON's encoding: %v\n", encoding)
  
    // 打印错误
    fmt.Printf("Error occurred: %v\n", error)
} 

输出:

JSON编码:[34 50 48 50 53 45 49 49 45 48 57 84 49 55 58 48 56 58 49 54 46 48 48 48 48 48 48 57 48 51 90 34]
发生的错误:

在上述代码中“t”的值超出了常规范围,但在转换时它们被规范化了。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程