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”的值超出了常规范围,但在转换时它们被规范化了。