DT Dev Tools

Convertitore JSON in Python — Genera classi

Converti JSON in dataclass Python o modelli Pydantic con type hint, campi snake_case e helper from_dict/to_dict. Gratuito, privato e nel tuo browser.

🔒 Funziona interamente nel tuo browser — nulla viene caricato

Pubblicità

Dal JSON a classi Python tipizzate

Lavorare con dizionari grezzi è veloce, finché un errore di battitura in una chiave non provoca un KeyError tre livelli più in profondità. Questo convertitore da JSON a Python genera classi tipizzate a partire da un esempio JSON, così editor, type checker e colleghi sanno esattamente cosa contiene ogni payload. Ogni oggetto diventa una classe con attributi annotati, gli oggetti annidati diventano classi a sé, le liste sono tipizzate in base al tipo dei loro elementi e i valori a volte assenti sono tipizzati come opzionali. Le chiavi JSON vengono convertite in attributi snake_case, mentre il codice di serializzazione generato mantiene le chiavi originali nei dati scambiati.

La generazione è affidata a quicktype, che unisce tutti gli elementi di ogni array prima di dedurre i tipi, quindi un campo presente solo in alcuni elementi viene comunque catturato e marcato come opzionale, anziché essere scartato in silenzio.

Dataclass, Pydantic e versioni di Python

Per impostazione predefinita l'output usa classi @dataclass della libreria standard, più funzioni from_dict e to_dict che validano e convertono ogni campo, quindi non servono dipendenze di terze parti. Se il tuo progetto usa già Pydantic, per esempio per i corpi delle richieste di FastAPI, per le impostazioni o per la validazione, seleziona Pydantic BaseModel e le classi erediteranno da BaseModel. Il selettore della versione di Python controlla la sintassi dei tipi: 3.10+ produce annotazioni moderne come list[int] e str | None, mentre i target più vecchi ricorrono al modulo typing. Seleziona Classes only per saltare del tutto gli helper di conversione.

Consigli pratici

Usa un esempio che copra i campi opzionali e contenga più elementi per array, perché l'inferenza può descrivere solo ciò che vede. Dai alla classe radice il nome del tuo dominio — Invoice si legge meglio di Root — e il download userà quel nome. Dopo la generazione, esegui il tuo formatter e il type checker (Black, Ruff, mypy o Pyright) e rifinisci ciò che l'esempio non poteva rivelare, come stringhe che sono in realtà enum o numeri che dovrebbero essere Decimal. Tutto il parsing e la generazione del codice avvengono in locale, quindi puoi incollare in sicurezza risposte che contengono dati dei clienti.

Come usare

  1. Incolla il JSONIncolla un oggetto o un array JSON, oppure clicca su Load sample.
  2. Scegli lo stileSeleziona la versione di Python e se vuoi dataclass o modelli Pydantic.
  3. Copia le classiCopia il codice generato o scaricalo come modulo .py.

Domande frequenti

Genera dataclass o modelli Pydantic?
Entrambi. L'output predefinito usa @dataclass con type hint; seleziona Pydantic BaseModel per ottenere invece modelli Pydantic.
Quali versioni di Python sono supportate?
Puoi scegliere 3.6, 3.7, 3.9 o 3.10+. I target più recenti usano generici integrati come list[str] e la sintassi di unione X | None.
I nomi delle proprietà vengono convertiti in snake_case?
Sì. I nomi dei campi diventano snake_case in stile Python, mentre le funzioni generate from_dict e to_dict mantengono le chiavi JSON originali.
I miei dati vengono caricati?
No. Tutto viene eseguito in locale nel tuo browser, quindi le risposte API private restano sul tuo dispositivo.
Pubblicità