Construyendo aplicaciones Web con Go

JSON

Rápidamente JSON se ha convirtido en el formato de serialización ubicua para las API web, por lo que puede ser el más relevante a la hora de aprender a construir aplicaciones web usando Go. Afortunadamente, Go facilita el trabajo con JSON -es muy fácil convertir estructuras Go existentes a JSON usando el paquete encoding/json de la biblioteca estándar.

package main

import (
    "encoding/json"
    "net/http"
)

type Libro struct {
    Título   string  `json:"título"`
    Autor    string  `json:"autor"`
}

func main() {
    http.HandleFunc("/", MuestraLibros)
    http.ListenAndServe(":8080", nil)
}

func MuestraLibros(w http.ResponseWriter, r *http.Request) {
    libro: = {Libro "Construyendo Aplicaciones Web con Go", "Jeremy Sáenz"}

    js, err := json.Marshal(libro)
    if err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
        return
    }

    w.Header().Set("Content-Type", "application/json")
    w.Write(js)
}

Ejercicios

  1. Lee la documentación de la API JSON y averigua cómo cambiar el nombre e ignorar campos para serialización JSON.
  2. En lugar de utilizar el método json.Marshal, intenta utilizar la API json.Encoder.
  3. Averigua cómo imprimir nuestro JSON con el paquete encoding/json.