
Serde & serialisatie
serde-traits, derive-macro's, JSON/YAML/TOML, aangepaste (de)serialisatie, lifetimes met Cow, prestaties
1Wat is de hoofdrol van de serde-crate in Rust?
Wat is de hoofdrol van de serde-crate in Rust?
Antwoord
Serde is een generiek serialisatie- en deserialisatieframework voor Rust. De naam komt van "SERialize DEserialize". Het maakt het mogelijk om Rust-datastructuren efficiënt en type-safe naar en van verschillende dataformaten (JSON, YAML, TOML enz.) te converteren. Serde gebruikt het trait-systeem van Rust om een abstractie zonder runtimekosten te bieden.
2Wat is de juiste syntaxis om automatische serialisatie op een struct met serde in te schakelen?
Wat is de juiste syntaxis om automatische serialisatie op een struct met serde in te schakelen?
Antwoord
Het attribuut #[derive(Serialize, Deserialize)] genereert automatisch de implementaties van de traits Serialize en Deserialize voor een struct. Deze procedurele macro analyseert de veldstructuur en genereert de benodigde code tijdens het compileren. Je moet de traits importeren uit serde met use serde::{Serialize, Deserialize}.
3Welke functie moet worden gebruikt om een Rust-struct met serde_json naar een JSON-string te converteren?
Welke functie moet worden gebruikt om een Rust-struct met serde_json naar een JSON-string te converteren?
Antwoord
De functie serde_json::to_string() converteert een waarde die Serialize implementeert naar een JSON-string. Ze retourneert een Result<String, Error> omdat serialisatie in bepaalde gevallen kan mislukken. Voor opgemaakte uitvoer met inspringing gebruik je serde_json::to_string_pretty(). Om rechtstreeks naar een Writer te schrijven gebruik je serde_json::to_writer().
Hoe deserialiseer je een JSON-string naar een Rust-struct met serde_json?
Welk serde-attribuut moet worden gebruikt om een veld tijdens serialisatie te hernoemen?
+17 gespreksvragen
Andere Rust-sollicitatieonderwerpen
Rust-basis
Ownership & Borrowing
Structs & Enums
Foutafhandeling
Collecties
Modules & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macro's
Unsafe Rust
Geavanceerde traits
Geavanceerde Lifetimes
Type System
Tokio & Async I/O
Prestatie-optimalisatie
Memory Management
Web Frameworks
Database Integration
Rust Design Patterns
Beheers Rust voor je volgende gesprek
Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.
Begin gratis