¿Cómo usar JSON en Go?
Para interactuar con JSON en Golang se echa mano de la librería econding/json
.
Supongamos que tenemos una estructura que deseamos codificar.
type Pais struct {
Nombre string
Habitantes int
Capital string
Idiomas []string
}
Vamos a crear una instancia de esta estructura correspondiente al país de Canadá.
p := Pais{
Nombre: "Canada",
Habitantes: 37314442,
Capital: "Ottawa",
Idiomas: []string{"Inglés", "Frances"},
}
Ahora vamos a codificar esta estructura utilizando json.Marshal
de la librería encoding/json
.
datosJson, err := json.Marshal(p)
if err != nil {
log.Fatal(err)
}
El programa completo luciría algo así…
package main
import (
"encoding/json"
"fmt"
"log"
)
type Pais struct {
Nombre string
Habitantes int
Capital string
Idiomas []string
}
func main() {
p := Pais{
Nombre: "Canada",
Habitantes: 37314442,
Capital: "Ottawa",
Idiomas: []string{"Inglés", "Frances"},
}
datosJson, err := json.Marshal(p)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(datosJson))
}
Si ejecutamos el programa, podremos ver que la impresión del json es correcta.
> go run main.go
{"Nombre":"Canada","Habitantes":37314442,"Capital":"Ottawa","Idiomas":["Inglés","Frances"]}