# Serde & Serialization (Rust) > serde traits, derive macros, JSON/YAML/TOML, custom (de)serialization, lifetimes avec Cow, performance - 20 questions d'entretien - Confirmé - [Questions d'entretien: Rust](https://sharpskill.dev/fr/technologies/rust/questions-entretien.md) ## 1. Quel est le rôle principal de la crate serde en Rust ? **Réponse** Serde est un framework de sérialisation et désérialisation générique pour Rust. Son nom vient de "SERialize DEserialize". Il permet de convertir des structures de données Rust vers et depuis différents formats de données (JSON, YAML, TOML, etc.) de manière efficace et type-safe. Serde utilise le système de traits de Rust pour fournir une abstraction sans coût runtime. ## 2. Quelle est la syntaxe correcte pour activer la sérialisation automatique sur une struct avec serde ? **Réponse** L'attribut #[derive(Serialize, Deserialize)] permet de générer automatiquement les implémentations des traits Serialize et Deserialize pour une struct. Cette macro procédurale analyse la structure des champs et génère le code nécessaire à la compilation. Il est nécessaire d'importer les traits depuis serde avec use serde::{Serialize, Deserialize}. ## 3. Quelle fonction utiliser pour convertir une struct Rust en chaîne JSON avec serde_json ? **Réponse** La fonction serde_json::to_string() convertit une valeur implémentant Serialize en une chaîne JSON. Elle retourne un Result car la sérialisation peut échouer dans certains cas. Pour une sortie formatée avec indentation, utiliser serde_json::to_string_pretty(). Pour écrire directement dans un Writer, utiliser serde_json::to_writer(). ## 17 questions supplémentaires disponibles - Comment désérialiser une chaîne JSON vers une struct Rust avec serde_json ? - Quel attribut serde utiliser pour renommer un champ lors de la sérialisation ? S'inscrire gratuitement: https://sharpskill.dev/fr/login ## Autres sujets d'entretien Rust - [Les bases de Rust](https://sharpskill.dev/fr/technologies/rust/questions-entretien/rust-basics.md): 25 questions, Junior - [Ownership & Borrowing](https://sharpskill.dev/fr/technologies/rust/questions-entretien/ownership-borrowing.md): 22 questions, Junior - [Structs & Enums](https://sharpskill.dev/fr/technologies/rust/questions-entretien/structs-enums.md): 20 questions, Junior - [Gestion des erreurs](https://sharpskill.dev/fr/technologies/rust/questions-entretien/error-handling.md): 18 questions, Junior - [Collections](https://sharpskill.dev/fr/technologies/rust/questions-entretien/collections.md): 20 questions, Junior - [Modules & Packages](https://sharpskill.dev/fr/technologies/rust/questions-entretien/modules-packages.md): 18 questions, Junior - [Traits](https://sharpskill.dev/fr/technologies/rust/questions-entretien/traits.md): 22 questions, Confirmé - [Generics](https://sharpskill.dev/fr/technologies/rust/questions-entretien/generics.md): 20 questions, Confirmé - [Lifetimes](https://sharpskill.dev/fr/technologies/rust/questions-entretien/lifetimes.md): 20 questions, Confirmé - [Iterators & Closures](https://sharpskill.dev/fr/technologies/rust/questions-entretien/iterators-closures.md): 22 questions, Confirmé - [Smart Pointers](https://sharpskill.dev/fr/technologies/rust/questions-entretien/smart-pointers.md): 22 questions, Confirmé - [Concurrency Basics](https://sharpskill.dev/fr/technologies/rust/questions-entretien/concurrency-basics.md): 20 questions, Confirmé - [async/await](https://sharpskill.dev/fr/technologies/rust/questions-entretien/async-await.md): 22 questions, Confirmé - [Testing](https://sharpskill.dev/fr/technologies/rust/questions-entretien/testing.md): 18 questions, Confirmé - [Cargo & Ecosystem](https://sharpskill.dev/fr/technologies/rust/questions-entretien/cargo-ecosystem.md): 18 questions, Confirmé - [Pattern Matching](https://sharpskill.dev/fr/technologies/rust/questions-entretien/pattern-matching.md): 18 questions, Confirmé - [Macros](https://sharpskill.dev/fr/technologies/rust/questions-entretien/macros.md): 20 questions, Confirmé - [Unsafe Rust](https://sharpskill.dev/fr/technologies/rust/questions-entretien/unsafe-rust.md): 20 questions, Senior - [Traits Avancés](https://sharpskill.dev/fr/technologies/rust/questions-entretien/advanced-traits.md): 22 questions, Senior - [Lifetimes Avancés](https://sharpskill.dev/fr/technologies/rust/questions-entretien/advanced-lifetimes.md): 20 questions, Senior - [Type System](https://sharpskill.dev/fr/technologies/rust/questions-entretien/type-system.md): 20 questions, Senior - [Tokio & Async I/O](https://sharpskill.dev/fr/technologies/rust/questions-entretien/tokio-async.md): 22 questions, Senior - [Optimisation de Performance](https://sharpskill.dev/fr/technologies/rust/questions-entretien/performance-optimization.md): 20 questions, Senior - [Memory Management](https://sharpskill.dev/fr/technologies/rust/questions-entretien/memory-management.md): 20 questions, Senior - [Web Frameworks](https://sharpskill.dev/fr/technologies/rust/questions-entretien/web-frameworks.md): 22 questions, Senior - [Database Integration](https://sharpskill.dev/fr/technologies/rust/questions-entretien/database-integration.md): 20 questions, Senior - [Design Patterns Rust](https://sharpskill.dev/fr/technologies/rust/questions-entretien/design-patterns.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/rust/questions-entretien/serde-serialization