JSON til Rust
Konverter JSON til Rust-structer på nett. Generer Serde-kompatible structer for Rust-utvikling. Gratis, kjører i nettleseren—ingen data sendes til servere.
JSON-inndata
Rust-utdata
Hva er JSON til Rust?
Hvis du kaller et REST API i Rust, trenger du matchende struct-definisjoner før du kan deserialisere noe med Serde. Å skrive disse structs manuelt — spesielt for dypt nestet JSON — er kjedelig og utsatt for feil. Dette verktøyet genererer automatisk Serde-kompatible Rust-structs. Lim inn JSON-en din, få klare structs med #[derive(Serialize, Deserialize)], og legg dem direkte til i Cargo-prosjektet ditt.
Dette verktøyet genererer Rust-structer fra JSON-en din. Aktiver Serde for Serialize/Deserialize-deriveringer. Aktiver Option-typer for valgfrie felt. Utdata fungerer med serde_json::from_str og serde_json::to_string.
Konverteringen skjer helt i nettleseren din. JSON sendes aldri til en server.
Når JSON til Rust hjelper
Når du bygger Rust-apper som bruker REST-API-er, trenger du typede structer. Lim inn et eksempelsvar her for å generere matchende structer med Serde-støtte.
Slik bruker du verktøyet
Lim inn eller last opp JSON
Kopier JSON og lim det inn i editoren til venstre. Du kan også klikke Last opp for å åpne en fil. Bruk Eksempel for testdata. Angi struct-navn og valg i konfigurasjonspanelet.
Gå gjennom genererte structer
Høyre panel viser genererte Rust-structer. Nestede objekter blir egne structer. Tabeller blir Vec<T>. Hvis JSON-syntaksen er ugyldig, fiks den først med JSON-formaterer eller JSON-validator.
Kopier eller last ned
Bruk Kopier eller Last ned for å hente koden. Legg til serde og serde_json i Cargo.toml. Lim inn i Rust-prosjektet ditt.
Eksempler på JSON til Rust
Her er et eksempel på generering av Rust-structer fra et JSON-objekt.
Eksempel: Abonnementspost
JSON-inndata:
Generert Rust-utdata:
Når JSON til Rust hjelper
De fleste utviklere trenger dette ved integrasjon mot REST-API-er. Ved å lime inn her får du Serde-kompatible structer du kan bruke med en gang.
Hvis du må slå sammen to JSON-filer først, finnes det et eget JSON-sammenslåing-verktøy for det.
API-svar, konfigurasjonsfiler eller dataeksport er ofte JSON. Kjør dem gjennom her for å generere Rust-structer.
Ofte stilte spørsmål
Hvordan deserialiserer jeg JSON i Rust med Serde?
Legg til serde = { version = "1.0", features = ["derive"] } og serde_json = "1.0" i Cargo.toml-filen din. Utled Deserialize på structen din, kall deretter serde_json::from_str::<YourStruct>(&json_string). Generer structen her ved å lime inn JSON-en din.
Hva gjør #[serde(rename)] i Rust?
#[serde(rename = "jsonKey")] forteller Serde å mappe en spesifikk JSON-nøkkel til et Rust-feltnavn. Nyttig når JSON bruker camelCase (som planName) men Rust-structen bruker snake_case (plan_name). Generatoren legger dem til automatisk når det trengs.
Hvordan håndterer jeg valgfrie eller nullable JSON-felt i Rust?
Aktiver Option Types for å pakke nullable felt i Option<T>. Dette betyr at fraværende eller null JSON-felt deserialiseres til None i stedet for å forårsake en feil. Du kan også legge til #[serde(skip_serializing_if = "Option::is_none")] for å utelate null-felt ved serialisering.
Sendes JSON-en min til en server?
Nei. Struct-generering kjører helt i nettleseren din. JSON-en din forlater aldri maskinen din.
Hva med nestede JSON-objekter og arrays?
Nestede JSON-objekter blir separate Rust-structs, hver med sin egen #[derive(Serialize, Deserialize)]. Arrays blir Vec<T> av de struct-typene. Generatoren håndterer vilkårlig nestingsdybde.
Relaterte verktøy
Rust JSON — se Serde og serde_json. JSON — se JSON-spesifikasjonen.