JSON de ida y vuelta en Go
Marshal y Unmarshal, con etiquetas que deciden los nombres en el cable.
type Tour struct {
Slug string `json:"slug"`
Steps int `json:"steps"`
Sets []string `json:"sets,omitempty"`
}
func roundTrip() (string, int, error) {
original := Tour{Slug: "traits", Steps: 19, Sets: []string{"Traits"}}
data, err := json.MarshalIndent(original, "", " ")
if err != nil {
return "", 0, fmt.Errorf("marshal: %w", err)
}
var back Tour
if err := json.Unmarshal(data, &back); err != nil {
return "", 0, fmt.Errorf("unmarshal: %w", err)
}
return back.Slug, len(data), nil
}
Cómo funciona
- Solo los campos exportados se codifican.
- Haz Unmarshal hacia un puntero, y revisa el error.
MarshalIndentes la forma legible.
Palabras clave y builtins usados aquí
errorfuncifintlenreturnstringstructtypevar
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 495
- Tokens
- 128
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 77 segundos.
Paso 2 de 3 en Codificación; paso 2 de 26 en Biblioteca estándar y estructura del proyecto.