Rust

Serde & Serialisierung

serde-Traits, Derive-Makros, JSON/YAML/TOML, benutzerdefinierte (De-)Serialisierung, Lifetimes mit Cow, Performance

20 Interview-Fragen·
Mid-Level
1

Was ist die Hauptaufgabe der serde-Crate in Rust?

Antwort

Serde ist ein generisches Framework für Serialisierung und Deserialisierung in Rust. Sein Name stammt von "SERialize DEserialize". Es ermöglicht das effiziente und typsichere Konvertieren von Rust-Datenstrukturen in und aus verschiedenen Datenformaten (JSON, YAML, TOML usw.). Serde nutzt das Trait-System von Rust, um eine Abstraktion ohne Laufzeitkosten bereitzustellen.

2

Was ist die korrekte Syntax, um die automatische Serialisierung für ein Struct mit serde zu aktivieren?

Antwort

Das Attribut #[derive(Serialize, Deserialize)] generiert automatisch die Implementierungen der Traits Serialize und Deserialize für ein Struct. Dieses prozedurale Makro analysiert die Feldstruktur und erzeugt den notwendigen Code zur Kompilierzeit. Die Traits müssen mit use serde::{Serialize, Deserialize} aus serde importiert werden.

3

Welche Funktion sollte verwendet werden, um ein Rust-Struct mit serde_json in einen JSON-String zu konvertieren?

Antwort

Die Funktion serde_json::to_string() konvertiert einen Wert, der Serialize implementiert, in einen JSON-String. Sie gibt ein Result<String, Error> zurück, da die Serialisierung in bestimmten Fällen fehlschlagen kann. Für formatierte Ausgabe mit Einrückung verwenden Sie serde_json::to_string_pretty(). Um direkt in einen Writer zu schreiben, verwenden Sie serde_json::to_writer().

4

Wie deserialisiert man einen JSON-String mit serde_json in ein Rust-Struct?

5

Welches serde-Attribut sollte verwendet werden, um ein Feld während der Serialisierung umzubenennen?

+17 Interview-Fragen

Meistere Rust für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten