DokumenteBilderMedienPDF-Werkzeuge

JSON in Rust Struct

Rust-Structs mit serde aus JSON generieren, kostenlos, in deinem Browser.

Processed in your browser

Von JSON zur Rust-Struct mit serde

Kompatibel mit dem serde-Ökosystem

Generiert Structs, die direkt mit serde_json, reqwest, Actix-web, Axum und jedem Rust-Ökosystem-Crate verwendet werden können.

100% privat

Dein JSON verlässt deinen Browser nie. Keine Anmeldung, keine Telemetrie, kein Server-Upload.

Korrekte Rust-Konventionen

Automatisches snake_case, Option<T> für Nullable-Felder, korrekte numerische Typen (i64, f64). Idiomatischer Code.

Sofortig

Structs in Echtzeit generiert. Keine Buttons, kein Warten, keine Grenzen.

Drei Schritte, kein Aufwand

1

Dein JSON einfügen

Füge das JSON ein, das du modellieren möchtest. Kann ein verschachteltes Objekt, ein Array oder eine beliebige gültige JSON-Struktur sein.

2

Sofortige Generierung

Das Tool generiert Rust-Structs mit serde-Ableitungen automatisch und folgt dabei snake_case-Konventionen.

3

Den Code kopieren

Kopiere den generierten Code und füge die serde-Abhängigkeit zu deiner Cargo.toml hinzu, um ihn direkt zu verwenden.

Noch Fragen?

serde (serialization/deserialization) ist das beliebteste Serialisierungs-Framework im Rust-Ökosystem. Es konvertiert Rust-Structs in und aus Formaten wie JSON, YAML, TOML, MessagePack, CBOR und vielen weiteren. Das Besondere an serde ist die Verwendung von Kompilierzeit-Makros, was null Laufzeit-Overhead bedeutet: Der generierte Code ist so effizient, als hättest du die Serialisierung manuell geschrieben.

Das Makro #[derive(Serialize, Deserialize)] in Rust weist den Compiler an, automatisch die Implementierung von serdes Serialize- und Deserialize-Traits für die Struct zu generieren. Das eliminiert die Notwendigkeit, Serialisierungs-Code manuell zu schreiben. Es ist äquivalent zur Implementierung eines Interface, aber der Code wird zur Kompilierzeit über prozedurale Makros generiert.

snake_case ist Rusts offizielle Namenskonvention für Variablen, Struct-Felder und Funktionen (definiert in den Rust API Guidelines). REST-APIs geben JSON jedoch häufig in camelCase zurück. serde behandelt diese Diskrepanz automatisch mit dem Attribut #[serde(rename_all = camelCase)] auf Struct-Ebene oder #[serde(rename = fieldName)] pro einzelnem Feld.

In Rust gibt es kein null - stattdessen wird der Typ Option<T> verwendet, der Some(value) oder None sein kann. Wenn ein JSON-Feld null oder abwesend sein kann, ist der entsprechende Rust-Typ Option<T>, zum Beispiel Option<String> oder Option<i64>. serde deserialisiert null automatisch als None und überspringt Felder mit None beim Serialisieren (mit #[serde(skip_serializing_if = Option::is_none)]).

Füge diese Zeilen zu deiner Cargo.toml hinzu: serde mit der Version 1.0 und dem Feature derive, sowie serde_json mit Version 1.0. Das derive-Feature aktiviert die #[derive(Serialize, Deserialize)]-Makros. serde_json stellt serde_json::from_str() zur Deserialisierung und serde_json::to_string() zur Serialisierung bereit. Diese gehören zu den am häufigsten heruntergeladenen Crates im Rust-Ökosystem.

Rust als beliebteste Sprache bei Stack Overflow, das serde-Ökosystem und WebAssembly mit Rust

Rust wurde in der Stack-Overflow-Entwicklerumfrage 9 Jahre in Folge (2016-2024) als die beliebteste Programmiersprache gewählt. Diese Popularität beruht auf seinem einzigartigen Angebot: Speichersicherheit ohne Garbage-Collector, vergleichbare Leistung zu C/C++ und ein Typsystem, das ganze Klassen von Bugs zur Kompilierzeit verhindert - null-Pointer-Dereferenzierungen, Data-Races und Buffer-Overflows. Immer mehr Projekte in kritischen Systemen, CLIs und Hochleistungs-Diensten migrieren zu Rust.

serde ist der Pfeiler der Serialisierung in Rust. Mit über 300 Millionen Downloads auf crates.io ist es eine der allgegenwärtigsten Abhängigkeiten im Ökosystem. Was serde besonders macht, ist seine formatunabhängige Datenmodell-Architektur: Structs implementieren einmalig gegen serdes abstraktes Datenmodell, und Formate (JSON, YAML, TOML, Bincode, MessagePack usw.) implementieren ihren eigenen Adapter. Das bedeutet, in einem Rust-Projekt von JSON zu MSGPACK zu wechseln ist oft so einfach wie das Ändern eines einzigen Crate.

WebAssembly (Wasm) ist ein weiterer Bereich, in dem Rust glänzt. Mit wasm-bindgen und wasm-pack kannst du Rust-Code in WebAssembly kompilieren und im Browser mit nahezu nativer Leistung ausführen. serde_json funktioniert auf Wasm-Targets ohne Änderungen. Projekte wie Figma (seine Rendering-Engine), Cloudflare Workers und Teile von Firefox sind in Rust geschrieben. Das Tool auf convertir.ai verwendet ähnliche Technologie: Client-seitige Verarbeitung ohne Daten an einen Server zu senden.