JSON, Como decodificar

¿Cómo decodificar un json en Go?

De igual forma que podemos convertir una estructura en una estructura JSON utilizando json.Marshal, podemos convertir un JSON en forma de slice de bytes a una estructura de Go utilizando json.Unmarshal.

Primero necesitamos la estructura sobre la cual se va a decodificar el JSON.

type Pais struct {
    Nombre      string
    Habitantes  int
    Capital     string
    Idiomas     []string
}

Ahora preparamos el string con la estructura JSON.

datosJson := `{"nombre":"Canada","habitantes":37314442,"capital":"Ottawa","idiomas":["Inglés","Frances"]}`

Preparamos la estructura que recibirá la el json decodificado.

p := Pais{}

Y usamos json.Unmarshal para transformar el slice de bytes en una estructura. Si este proceso no se puede realizar se generará un error.

err := json.Unmarshal([]byte(datosJson), &p)

Si revisamos el programa de forma completa, lucirá de esta forma.

package main

import (
    "encoding/json"
    "fmt"
    "log"
)

type Pais struct {
    Nombre     string
    Habitantes int
    Capital    string
    Idiomas    []string
}

func main() {
    datosJson := `{"nombre":"Canada","habitantes":37314442,"capital":"Ottawa","idiomas":["Inglés","Frances"]}`
    p := Pais{}
    err := json.Unmarshal([]byte(datosJson), &p)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("%+v\n", p)
}

Si ejecutamos el programa, podremos ver el json convertido en estructura.

$ go run main.go
{Nombre:Canada Habitantes:37314442 Capital:Ottawa Idiomas:[Inglés Frances]}

VPN

  • Ir a la oferta de NordVPN

Moda

Accesorios