
Serde e serializzazione
trait serde, macro derive, JSON/YAML/TOML, (de)serializzazione personalizzata, lifetime con Cow, prestazioni
1Qual è il ruolo principale della crate serde in Rust?
Qual è il ruolo principale della crate serde in Rust?
Risposta
Serde è un framework di serializzazione e deserializzazione generico per Rust. Il suo nome deriva da "SERialize DEserialize". Permette di convertire le strutture dati Rust da e verso vari formati di dati (JSON, YAML, TOML, ecc.) in modo efficiente e type-safe. Serde utilizza il sistema di trait di Rust per fornire un'astrazione a costo zero in runtime.
2Qual è la sintassi corretta per abilitare la serializzazione automatica su una struct con serde?
Qual è la sintassi corretta per abilitare la serializzazione automatica su una struct con serde?
Risposta
L'attributo #[derive(Serialize, Deserialize)] genera automaticamente le implementazioni dei trait Serialize e Deserialize per una struct. Questa macro procedurale analizza la struttura dei campi e genera il codice necessario in fase di compilazione. È necessario importare i trait da serde con use serde::{Serialize, Deserialize}.
3Quale funzione utilizzare per convertire una struct Rust in una stringa JSON con serde_json?
Quale funzione utilizzare per convertire una struct Rust in una stringa JSON con serde_json?
Risposta
La funzione serde_json::to_string() converte un valore che implementa Serialize in una stringa JSON. Restituisce un Result<String, Error> perché la serializzazione può fallire in determinati casi. Per un output formattato con indentazione, usa serde_json::to_string_pretty(). Per scrivere direttamente in un Writer, usa serde_json::to_writer().
Come deserializzare una stringa JSON in una struct Rust con serde_json?
Quale attributo serde utilizzare per rinominare un campo durante la serializzazione?
+17 domande da colloquio
Altri argomenti di colloquio Rust
Fondamenti di Rust
Ownership & Borrowing
Structs & Enums
Gestione degli errori
Collezioni
Moduli e package
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macro
Unsafe Rust
Trait avanzati
Lifetime Avanzati
Type System
Tokio & Async I/O
Ottimizzazione delle Prestazioni
Memory Management
Web Frameworks
Database Integration
Design Pattern in Rust
Padroneggia Rust per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis