當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Golang time.Time.MarshalJSON()用法及代碼示例

在Go語言中,時間包提供了確定和查看時間的函數。 Go語言中的MarshalJSON()函數用於實現json.Marshaler接口。而且這裏的時間是帶引號的字符串,該字符串是RFC 3339格式以及附加的sub-second精度(如果有)。此外,此函數在時間包下定義。在這裏,您需要導入“time”包才能使用這些函數。

用法:

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

在此,“t”是指定的時間,在此方法中,將返回“byte”和“error”類型的兩個值作為輸出。

返回值:它返回一個表示JSON編碼的字節片,並且還返回發生錯誤,但是如果沒有錯誤,則返回“nil”。

範例1:



// Golang program to illustrate the usage of 
// Time.MarshalJSON() 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(2014, 11, 10, 14, 30, 12, 05, time.UTC) 
  
    // Calling MarshalJSON() method 
    encoding, error:= t.MarshalJSON() 
  
    // Prints JSON's encoding 
    fmt.Printf("JSON's encoding:%v\n", encoding) 
  
    // Prints error 
    fmt.Printf("Error occurred:%v\n", error) 
}

輸出:

JSON’s encoding:[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]
Error occurred:<nil>

範例2:

// Golang program to illustrate the usage of 
// Time.MarshalJSON() 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(2022, 45, 67, 88, 67, 76, 903, time.UTC) 
  
    // Calling MarshalJSON() method 
    encoding, error:= t.MarshalJSON() 
  
    // Prints JSON's encoding 
    fmt.Printf("JSON's encoding:%v\n", encoding) 
  
    // Prints error 
    fmt.Printf("Error occurred:%v\n", error) 
}

輸出:

JSON’s encoding:[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]
Error occurred:<nil>

此處,以上代碼中說明的“t”的值在通常範圍之外,但在轉換時已標準化。




相關用法


注:本文由純淨天空篩選整理自nidhi1352singh大神的英文原創作品 time.Time.MarshalJSON() Function in Golang with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。