JSON
JSON vem se tornando rapidamente o formato de serialização dominante para APIs
web, o que faz dele o mais relevante quando se está aprendendo a construir aplicações
web usando Go. Felizmente, é muito simples trabalhar com JSON em Go - é extremamente
fácil transformar structs Go existentes em JSON usando o pacote encoding/json
da biblioteca padrão.
package main
import (
"encoding/json"
"net/http"
)
type Book struct {
Title string `json:"title"`
Author string `json:"author"`
}
func main() {
http.HandleFunc("/", ShowBooks)
http.ListenAndServe(":8080", nil)
}
func ShowBooks(w http.ResponseWriter, r *http.Request) {
book := Book{"Building Web Apps with Go", "Jeremy Saenz"}
js, err := json.Marshal(book)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Header().Set("Content-Type", "application/json")
w.Write(js)
}
Exercícios
- Leia a documentação da API JSON e descubra como renomear e ignorar campos na serialização para JSON.
- Em vez de usar o método
json.Marshal
, tente usar a APIjson.Encoder
. - Descubra como fazer pretty print do JSON com o pacote
encoding/json
.