Cómo convertir una estructura de Go a JSON y manejar errores
```html
¡Hola a todos! Soy un desarrollador Go principiante y me encontré con un problema al convertir una estructura a JSON. Estoy escribiendo un servicio simple para gestionar usuarios y necesito serializar datos a JSON para enviarlos a través de HTTP.
Aquí está mi estructura:
```go
type User struct {
Name string
Age int
Email string
}
```
Estoy usando `json.Marshal()`:
```go
user := User{Name: "Иван", Age: 30, Email: "ivan@example.com"}
data, err := json.Marshal(user)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(data))
```
Pero el resultado me confunde: los campos se muestran con mayúscula inicial: `{"Name":"Иван","Age":30,"Email":"ivan@example.com"}`. En la documentación vi que se pueden usar tags, pero no entiendo cómo aplicarlos correctamente. Además, ¿qué hacer con los campos que pueden estar vacíos? Por ejemplo, si Email no está especificado, quiero excluirlo del JSON. Y también: ¿cómo manejar estructuras anidadas y arrays?
Por favor, indíquenme las mejores prácticas para trabajar con JSON en Go. Quizás
```