Generatore JSON → Rust

Input JSON

Caricamento editor…

Rust Generato

Configuration

Inserisci dati JSON per generare struct Rust

Struct con supporto serde e type safety

Come convertire JSON in Rust – guida passo passo

Utilizza questo generatore da JSON a Rust per creare strutture Rust da esempi JSON per servizi e strumenti CLI con supporto serde.

  1. Passaggio 1: incolla un esempio JSON

    • Incolla un oggetto o un array JSON rappresentativo nell'editor di sinistra.
    • Includere oggetti nidificati, matrici e campi nullable in modo che i tipi vengano dedotti correttamente.
    • Utilizza Import per caricare JSON da un file, un URL o dati di esempio.
  2. Passaggio 2: scegli le opzioni della struttura Rust

    • Imposta una radice Struct Name (ad esempio Root).
    • Decidi come gestire i campi facoltativi (Option<T>) e i valori sconosciuti (serde_json::Value).
    • Conferma la denominazione e gli attributi serde in modo che le chiavi JSON vengano mappate correttamente.
  3. Passaggio 3: rivedere il codice generato

    • Controlla i nomi dei campi, i tipi e il modo in cui sono modellati gli array/oggetti.
    • Modifica opzioni come Root Type Name, gestione null e framework, se disponibili.
    • Se un campo viene dedotto in modo errato, modifica il JSON di esempio e rigeneralo.
  4. Passaggio 4: utilizzare le strutture con serde

    • Aggiungi serde e serde_json alle tue dipendenze e abilita le macro di derivazione.
    • Deserializza JSON nella struttura root utilizzando serde_json::from_str.
    • Aggiungi la convalida dopo la deserializzazione quando hai bisogno di garanzie più forti.
  5. Passaggio 5: copiare o scaricare

    • Copia l'output nel tuo progetto o scaricalo come file.
    • Esegui il tuo formattatore/linter per adattarlo allo stile del tuo codice.
    • Aggiungi librerie di analisi/serializzazione JSON se la tua lingua le richiede.

Suggerimenti rapidi

  • Utilizza Option<T> per i campi che possono essere mancanti o nulli.
  • Preferisci i tipi chrono solo quando il formato del timestamp è stabile.
  • Mantieni le strutture DTO separate dai tipi di dominio interno per garantire flessibilità.
Output di esempio (semplificato)
// Ingresso JSON
{
  "id": 123,
  "name": "Maeve Winters",
  "email": "[email protected]",
  "active": true,
  "roles": ["admin", "editor"],
  "metadata": { "plan": "pro" },
  "createdAt": "2024-03-01T10:15:00Z",
  "score": 99.5,
  "notes": null
}

// Generated Rust structs (simplified)
use serde::{Deserialize, Serialize};

#[derive(Debug, Serialize, Deserialize)]
pub struct Metadata {
  pub plan: String,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct Root {
  pub id: i64,
  pub name: String,
  pub email: Option<String>,
  pub active: bool,
  pub roles: Vec<String>,
  pub metadata: Metadata,
  pub created_at: String,
  pub score: f64,
  pub notes: serde_json::Value,
}

Strumenti JSON e Rust correlati

Esplora altri strumenti JSON e schemi che funzionano alla grande insieme a questo generatore da JSON a Rust.

Domande frequenti

Quali funzionalità Rust sono supportate?

Il generatore crea definizioni di struct Rust con derive macro, supporta serde per serializzazione/deserializzazione, usa Option per valori null e segue le convenzioni di naming Rust.

Come viene gestito serde?

Le struct generate includono derive Serialize e Deserialize e attributi serde per la mappatura dei nomi dei campi e la gestione dei campi opzionali.

Come vengono gestiti i valori opzionali?

I valori null nel JSON vengono mappati a Option<T> in Rust. I campi opzionali possono includere attributi come #[serde(skip_serializing_if = "Option::is_none")].

Come vengono gestite le collezioni?

Gli array JSON vengono mappati a Vec<T> e gli oggetti annidati generano struct separate. Le strutture complesse sono supportate con tipi generici corretti.

Generatore JSON → Rust | JSONSwiss