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.