Input JSON

Output Rust

Cos'è JSON a Rust?

Se stai chiamando una REST API in Rust, hai bisogno di definizioni di struct corrispondenti prima di poter deserializzare qualcosa con Serde. Scrivere quegli struct a mano — specialmente per JSON profondamente annidato — è noioso e soggetto a errori. Questo strumento genera automaticamente struct Rust compatibili con Serde. Incolla il tuo JSON, ottieni struct pronti con #[derive(Serialize, Deserialize)], e aggiungili direttamente al tuo progetto Cargo.

Questo strumento genera struct Rust da JSON. Abilita Serde per i derive Serialize/Deserialize. Abilita i tipi Option per i campi opzionali. L'output funziona con serde_json::from_str e serde_json::to_string.

La conversione viene eseguita interamente nel browser. Il JSON non viene inviato ad alcun server.

Quando è utile JSON a Rust

Quando si sviluppano app Rust che utilizzano API REST e si hanno bisogno di struct tipizzate. Incolla una risposta di esempio qui per generare struct corrispondenti con supporto Serde.

Come usare questo strumento

1

Incolla o carica JSON

Copia il JSON e incollalo nell'editor a sinistra. Puoi anche cliccare su Carica per caricare un file. Usa il pulsante Esempio per dati di prova. Imposta il nome dello struct e le opzioni nel pannello impostazioni.

2

Esamina le struct generate

Il pannello a destra mostra le struct Rust generate. Gli oggetti annidati diventano struct separate. Gli array diventano Vec<T>. Se la sintassi JSON non è corretta, usa prima il Formattatore JSON o il Validatore JSON per correggerla.

3

Copia o scarica

Usa Copia o Scarica per ottenere il codice. Aggiungi serde e serde_json al Cargo.toml. Incolla nel tuo progetto Rust.

Esempi JSON a Rust

Esempio di generazione di struct Rust da un oggetto JSON.

Esempio: Record sottoscrittore

Input JSON:

Input

Output Rust generato:

Output

Quando è utile JSON a Rust

La maggior parte degli sviluppatori ne ha bisogno durante l'integrazione di API REST. Incolla qui e ottieni struct compatibili con Serde pronte all'uso.

Se devi prima unire due file JSON, c'è uno strumento separato per Unione JSON.

Le risposte API, i file di configurazione o le esportazioni di dati sono spesso in JSON. Eseguilo qui per generare struct Rust.

Domande frequenti

Come deserializzo JSON in Rust con Serde?

Aggiungi serde = { version = "1.0", features = ["derive"] } e serde_json = "1.0" al tuo Cargo.toml. Deriva Deserialize sul tuo struct, poi chiama serde_json::from_str::<YourStruct>(&json_string). Genera lo struct qui incollando il tuo JSON.

Cosa fa #[serde(rename)] in Rust?

#[serde(rename = "jsonKey")] dice a Serde di mappare una chiave JSON specifica a un nome di campo Rust. Utile quando JSON usa camelCase (come planName) ma il tuo struct Rust usa snake_case (plan_name). Il generatore li aggiunge automaticamente quando necessario.

Come gestisco i campi JSON opzionali o nullable in Rust?

Abilita Option Types per avvolgere i campi nullable in Option<T>. Questo significa che i campi JSON assenti o null vengono deserializzati in None invece di causare un errore. Puoi anche aggiungere #[serde(skip_serializing_if = "Option::is_none")] per omettere i campi null durante la serializzazione.

Il mio JSON viene inviato a un server?

No. La generazione degli struct viene eseguita interamente nel tuo browser. Il tuo JSON non lascia mai la tua macchina.

E gli oggetti JSON annidati e gli array?

Gli oggetti JSON annidati diventano struct Rust separati, ognuno con il proprio #[derive(Serialize, Deserialize)]. Gli array diventano Vec<T> di quei tipi di struct. Il generatore gestisce profondità di annidamento arbitrarie.

Strumenti correlati

Rust JSON consulta Serde e serde_json. JSON consulta la specifica JSON.