Convertitore JSON in Rust — Genera struct serde
Converti JSON in struct Rust online con derive serde Serialize/Deserialize, Option<T> per i campi opzionali e nomi snake_case. Gratis, nel tuo browser.
🔒 Funziona interamente nel tuo browser — nulla viene caricatoStruct Rust per serde, generate dal JSON
Serde rende il JSON in Rust veloce e sicuro, ma solo dopo aver scritto struct che corrispondano esattamente ai dati. Questo convertitore da JSON a Rust le scrive per te. Incolla un esempio e ogni oggetto diventa una struct che deriva Serialize e Deserialize, le chiavi diventano nomi di campo snake_case idiomatici con attributi #[serde(rename)] dove serve, gli oggetti annidati diventano struct separate, gli array diventano Vec<T> e i valori assenti o null in qualche punto dell'esempio vengono racchiusi in Option<T>. Interi e decimali sono distinti in i64 e f64.
Il generatore è costruito su quicktype, che unisce tutti gli elementi di ogni array prima di scegliere un tipo. In Rust conta più che in altri linguaggi: una sola chiave inattesa o un solo null fa fallire la deserializzazione, quindi catturare subito i campi opzionali fa risparmiare tempo di debug.
Visibilità e derive
Scegli la visibilità dei campi in base a come verranno usati i tipi: pub per un crate di modelli condiviso, pub(crate) per moduli interni, oppure campi privati se vuoi aggiungere costruttori tuoi. I derive Debug e Clone sono attivi per impostazione predefinita perché quasi ogni modello ne ha bisogno; disattivali per un output più snello. Attiva Skip serializing None per aggiungere skip_serializing_if, così i campi None spariscono dal JSON in uscita invece di essere scritti come null. Ricorda di aggiungere serde con la feature derive e serde_json al tuo Cargo.toml.
Come ottenere tipi accurati
Usa un esempio con più elementi per array e campi opzionali compilati. Array vuoti e null non danno informazioni sul tipo e ricadono su serde_json::Value, che di solito vorrai sostituire. Dopo la generazione, esegui rustfmt, controlla le dimensioni degli interi (un ID potrebbe stare in u32) e trasforma i campi stringa con un insieme fisso di valori in enum con #[serde(rename_all)]. Tutto viene eseguito in locale nel tuo browser, quindi i payload privati non vengono mai caricati.
Come usare
- Incolla il JSONIncolla un documento JSON o clicca su Load sample.
- Regola i deriveImposta il nome della struct radice, la visibilità dei campi e i trait da derivare.
- Copia le structCopia il codice Rust o scarica un file .rs e aggiungi serde al Cargo.toml.
Domande frequenti
L'output funziona con serde?
Serialize e Deserialize e i campi riportano #[serde(rename = "...")] ovunque il nome Rust differisca dalla chiave JSON.Come vengono rappresentati i campi opzionali?
Option<T>. Seleziona Skip serializing None per ometterli in fase di serializzazione.Posso cambiare la visibilità dei campi?
pub, pub(crate) o privati e attiva o disattiva i derive Debug e Clone.