Función time.Time.UnmarshalJSON() en Golang con ejemplos

En el lenguaje Go, los paquetes de tiempo brindan la funcionalidad para determinar y ver el tiempo. La función UnmarshalJSON() en el lenguaje Go se usa para implementar la interfaz json.Unmarshaler . La hora aquí es una string entrecomillada que está en formato RFC 3339. Además, esta función se define en el paquete de tiempo. Aquí, debe importar el paquete «tiempo» para usar estas funciones.

Sintaxis:

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

Aquí, «t» es el puntero a la hora indicada, y «datos» es el segmento de bytes que representa la codificación de JSON generada por el método MarshalJSON().

Valor de retorno: decodifica la codificación que devolvió el método MarshalJSON() y devuelve que se produjo un error, pero si no hay ningún error, se devuelve «nil».

Ejemplo 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)
}

Producción:

Error: <nil>

Ejemplo 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)
}

Producción:

Error: <nil>

Aquí, la «t» indicada en el código anterior tiene valores que están fuera del rango habitual pero se normalizan durante la conversión.

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *