# Encodage JSON (Go) > json.Marshal, json.Unmarshal, struct tags, custom marshaling, streaming, RawMessage - 20 questions d'entretien - Confirmé - [Questions d'entretien: Go](https://sharpskill.dev/fr/technologies/go/questions-entretien.md) ## 1. Quelle fonction permet d'encoder une struct Go en JSON ? **Réponse** json.Marshal encode une struct Go en bytes JSON. Cette fonction lit les struct tags pour personnaliser la sérialisation (renommage, omission de champs). Pour du streaming sur io.Writer, utiliser json.NewEncoder évite de créer un buffer intermédiaire en mémoire. ## 2. Quelle fonction permet de décoder du JSON vers une struct Go ? **Réponse** json.Unmarshal décode des bytes JSON vers une struct Go. Il faut passer un pointeur vers la struct cible pour que les données soient correctement écrites. Pour du streaming depuis io.Reader, json.NewDecoder est plus efficace car il évite de charger tout le JSON en mémoire. ## 3. Quel struct tag JSON permet de renommer un champ lors de la sérialisation ? **Réponse** Le tag json:"nom_personnalise" permet de renommer un champ lors de la sérialisation JSON. Par exemple, un champ UserID peut devenir user_id en JSON. C'est utile pour respecter les conventions de nommage (snake_case en JSON vs CamelCase en Go). ## 17 questions supplémentaires disponibles - Quel struct tag JSON permet d'exclure complètement un champ de la sérialisation ? - Quel struct tag JSON permet d'omettre un champ si sa valeur est vide ? S'inscrire gratuitement: https://sharpskill.dev/fr/login ## Autres sujets d'entretien Go - [Les bases de Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-basics.md): 25 questions, Junior - [Structures de données Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-data-structures.md): 20 questions, Junior - [Interfaces Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-interfaces.md): 18 questions, Junior - [Gestion des erreurs](https://sharpskill.dev/fr/technologies/go/questions-entretien/error-handling.md): 20 questions, Junior - [Goroutines basiques](https://sharpskill.dev/fr/technologies/go/questions-entretien/goroutines-basics.md): 20 questions, Junior - [Channels](https://sharpskill.dev/fr/technologies/go/questions-entretien/channels.md): 22 questions, Junior - [Go Modules](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-modules.md): 18 questions, Confirmé - [Serveur HTTP](https://sharpskill.dev/fr/technologies/go/questions-entretien/http-server.md): 24 questions, Confirmé - [Client HTTP](https://sharpskill.dev/fr/technologies/go/questions-entretien/http-client.md): 18 questions, Confirmé - [Database/SQL](https://sharpskill.dev/fr/technologies/go/questions-entretien/database-sql.md): 22 questions, Confirmé - [Package context](https://sharpskill.dev/fr/technologies/go/questions-entretien/context-package.md): 20 questions, Confirmé - [Testing](https://sharpskill.dev/fr/technologies/go/questions-entretien/testing.md): 22 questions, Confirmé - [Patterns de concurrence](https://sharpskill.dev/fr/technologies/go/questions-entretien/concurrency-patterns.md): 24 questions, Confirmé - [Primitives de synchronisation](https://sharpskill.dev/fr/technologies/go/questions-entretien/sync-primitives.md): 22 questions, Confirmé - [Frameworks web Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-web-frameworks.md): 20 questions, Confirmé - [Design d'API REST](https://sharpskill.dev/fr/technologies/go/questions-entretien/rest-api-design.md): 20 questions, Confirmé - [gRPC](https://sharpskill.dev/fr/technologies/go/questions-entretien/grpc.md): 22 questions, Confirmé - [Reflection](https://sharpskill.dev/fr/technologies/go/questions-entretien/reflection.md): 20 questions, Senior - [Gestion mémoire](https://sharpskill.dev/fr/technologies/go/questions-entretien/memory-management.md): 24 questions, Senior - [Optimisation des performances](https://sharpskill.dev/fr/technologies/go/questions-entretien/performance-optimization.md): 22 questions, Senior - [Generics](https://sharpskill.dev/fr/technologies/go/questions-entretien/generics.md): 20 questions, Senior - [Design Patterns Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/design-patterns.md): 24 questions, Senior - [Microservices](https://sharpskill.dev/fr/technologies/go/questions-entretien/microservices.md): 24 questions, Senior - [Sécurité & Authentication](https://sharpskill.dev/fr/technologies/go/questions-entretien/security-authentication.md): 24 questions, Senior - [Docker & Containerization](https://sharpskill.dev/fr/technologies/go/questions-entretien/docker-containerization.md): 20 questions, Senior - [Kubernetes Basics](https://sharpskill.dev/fr/technologies/go/questions-entretien/kubernetes-basics.md): 22 questions, Senior - [Go Avancé](https://sharpskill.dev/fr/technologies/go/questions-entretien/advanced-go.md): 20 questions, Senior - [Développement CLI](https://sharpskill.dev/fr/technologies/go/questions-entretien/cli-development.md): 20 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/fr/technologies/go/questions-entretien/json-encoding