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

1

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.

2

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.

3

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:

Inndata

Generert Rust-utdata:

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.