Convertitore da JSON a classi Python
Incolla JSON e ottieni classi Python: dataclass, Pydantic v2 o TypedDict. Tipi Optional, alias camelCase, classi annidate. Gratis, online e nel browser.
Cos'è la conversione da JSON a Python?
La conversione da JSON a Python trasforma un campione JSON in classi Python pronte all'uso — un dataclass della libreria standard, un modello Pydantic v2 o un TypedDict — così non scrivi mai a mano le definizioni dei campi per una risposta API o un file di configurazione. Questo generatore di classi Python deduce i tipi corretti (int, float, str, bool, Optional), trasforma gli oggetti annidati in classi con nome e aggiunge gli alias Pydantic per le chiavi in camelCase, tutto al 100% nel tuo browser.
Esempi
Risposta API → dataclass
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} from dataclasses import dataclass
from typing import List
@dataclass
class Root:
id: int
name: str
email: str
active: bool
roles: List[str]
Un tipico payload REST diventa un @dataclass pronto all'uso. I numeri interi vengono dedotti come int, i decimali come float e gli array diventano List[str].
Oggetto annidato (classe figlia prima)
{"repo":"pydantic","owner":{"login":"samuelcolvin","id":100}} from dataclasses import dataclass
@dataclass
class Owner:
login: str
id: int
@dataclass
class Root:
repo: str
owner: Owner
Gli oggetti annidati diventano classi separate e con nome. La classe figlia (Owner) viene emessa prima della classe genitore, così il codice gira senza from __future__ import annotations.
camelCase → alias Pydantic v2
{"login":"octocat","publicRepos":15,"createdAt":"2011-01-25"} from pydantic import BaseModel, ConfigDict, Field
class Root(BaseModel):
model_config = ConfigDict(populate_by_name=True)
login: str
public_repos: int = Field(alias="publicRepos")
created_at: str = Field(alias="createdAt")
In modalità Pydantic, i campi sono snake_case con Field(alias=...) che rimanda alla chiave JSON originale, e populate_by_name ti permette di costruire il modello in entrambi i modi — così la validazione elabora fedelmente i dati API reali in entrambi i sensi.
Array di oggetti → TypedDict (chiave opzionale)
{"users":[{"id":1,"nick":"x"},{"id":2}]} from typing import List, Optional, TypedDict
class User(TypedDict):
id: int
nick: Optional[str]
class Root(TypedDict):
users: List[User]
Gli array di oggetti si uniscono in un unico tipo per l'elemento. Una chiave assente in alcuni elementi (nick) diventa Optional. TypedDict descrive la forma di un semplice dict senza alcun costo a runtime.
Come convertire JSON in Python
- 1
Incolla il tuo JSON
Inserisci un oggetto JSON, un array o una risposta API nel campo di input. La conversione parte istantaneamente.
- 2
Scegli dataclass, Pydantic o TypedDict
Cambia lo stile dell'output per adattarlo al tuo progetto e rinomina la classe radice dal predefinito Root.
- 3
Copia o scarica
Prendi il Python generato con un clic e incollalo direttamente nel tuo codice.
Common Use Cases
- Client API tipizzati
- Trasforma una risposta di esempio REST o GraphQL in modelli Pydantic o dataclass per un client requests o httpx senza scrivere a mano le definizioni dei campi.
- Parsing di configurazioni e fixture
- Genera modelli per file di configurazione JSON, fixture di test o payload di webhook che devi caricare e validare.
- Prototipazione rapida e type hint
- Incolla un payload sconosciuto per vederne all'istante la forma come tipi Python — un modo rapido per esplorare una nuova API o aggiungere i type hint TypedDict a codice legacy basato su dict.
Come funziona la conversione
- Inferenza strutturale
- Ogni oggetto diventa una classe con nome; le forme identiche vengono deduplicate così ottieni una sola classe, non delle copie. Gli array di oggetti vengono uniti chiave per chiave, e le chiavi assenti in alcuni elementi diventano Optional.
- Tre target idiomatici
- dataclass mantiene zero dipendenze e preserva le chiavi valide per Root(**data); Pydantic v2 aggiunge gli alias Field più populate_by_name per una vera validazione; TypedDict descrive un semplice dict per i type checker statici, usando la sintassi funzionale quando una chiave non è un identificatore.
- Tipizzazione corretta e con poche dipendenze
- I numeri interi corrispondono a int (precisione arbitraria, nessun overflow), i decimali e gli esponenti a float, e i campi solo null a Optional[Any]. Gli import da typing (Optional, List, Any) vengono aggiunti solo quando effettivamente usati.
- 100% lato client
- Il parsing e la generazione girano nel tuo browser senza chiamate di rete, così i tuoi dati restano privati.
Consigli per modelli Python puliti
- Adatta la modalità al lavoro
- Usa dataclass per i contenitori di dati interni, Pydantic v2 quando validi o analizzi input non attendibili, e TypedDict quando ti servono solo i type hint statici su dict esistenti.
- Incolla un campione rappresentativo
- I campi vengono contrassegnati come Optional solo quando un campione li omette, e i valori solo null ripiegano su Any. Un esempio completo e compilato produce i tipi più precisi.
- Dai un nome alla classe radice
- Imposta un nome radice significativo (User, ApiResponse) invece del Root predefinito per un codice leggibile e importabile.
Domande frequenti
Come converto JSON in una classe Python?
Qual è la differenza tra gli output dataclass, Pydantic e TypedDict?
Come genero un modello Pydantic da JSON?
Come gestisce l'output dataclass le chiavi in camelCase?
Come vengono tipizzati i campi opzionali e null?
A quale tipo Python corrisponde ogni valore JSON?
Gestisce gli oggetti annidati e gli array di oggetti?
Come vengono gestite le parole chiave di Python e le chiavi non identificatori?
Come uso il dataclass generato per analizzare JSON?
I miei dati JSON sono privati e al sicuro?
Lo strumento è gratuito? Serve un account?
Strumenti correlati
Vedi tutti gli strumenti →Decodificatore e codificatore Base64
Codifica e formattazione
Decodifica e codifica Base64 online gratis. Conversione in tempo reale con pieno supporto UTF-8 ed emoji. 100% privato — gira nel tuo browser. Nessuna registrazione.
Convertitore da Base64 a immagine
Codifica e formattazione
Decodifica una stringa Base64 o un data URI in un'immagine nel tuo browser. Anteprima, dimensioni e MIME, poi scarica come PNG, JPG, GIF, SVG. Nessun upload.
Convertitore CSV in JSON
Codifica e formattazione
Converti CSV in JSON nel browser. RFC 4180, inferenza tipi, riga header, sicuro per big-int. 100% privato, nessun upload.
Convertitore da .env a JSON
Codifica e formattazione
Incolla un file .env online e ottieni subito il JSON. Password, chiavi API e token non lasciano mai il browser: parser dotenv web, 100% privato, senza upload.
Decodificatore di entità HTML gratuito — Unescape HTML
Codifica e formattazione
Decodifica le entità HTML e fai l'unescape dell'HTML online — gratis, senza registrazione, 100% nel browser. Riconverte riferimenti con nome, decimali ed esadecimali in caratteri; mai caricato.
Codificatore di entità HTML gratuito — Escape HTML
Codifica e formattazione
Codifica le entità HTML e fai l'escape dei caratteri speciali (< > & " ') online — gratis, senza registrazione, 100% nel browser. Output con nome, decimale o esadecimale; mai caricato.