Skip to main content
CheckTown
Convertitori

JSON a C#: genera classi .NET dalle risposte API

Pubblicato 5 min di lettura
In questo articolo

Perché generare classi C# da JSON?

Quando si lavora con API REST in .NET o Unity, servono classi C# fortemente tipizzate per deserializzare le risposte JSON. Scrivere queste classi manualmente è noioso e soggetto a errori, soprattutto per payload API profondamente annidati. Un generatore JSON to C# analizza la struttura JSON e produce automaticamente definizioni di classi pronte all'uso.

Questo è particolarmente prezioso durante la prototipazione rapida. Incolli una risposta API di esempio, ottieni classi C# perfettamente strutturate e inizi immediatamente a lavorare con dati tipizzati invece di oggetti dinamici.

Modalità di output e opzioni di serializzazione

Il generatore supporta più formati di output per adattarsi allo stile di codifica e alla versione .NET del tuo progetto. Ogni modalità produce C# idiomatico che compila senza modifiche.

  • Class vs Record — classi mutabili tradizionali per progetti .NET più vecchi, o record C# 9+ per oggetti di trasferimento dati immutabili con uguaglianza di valore incorporata
  • System.Text.Json — il serializzatore moderno ad alte prestazioni integrato in .NET Core 3.1+ che usa attributi [JsonPropertyName]
  • Newtonsoft.Json — la libreria Json.NET ampiamente utilizzata che usa attributi [JsonProperty], ancora dominante nel .NET Framework legacy e nei progetti Unity

Prova gratuitamente — nessuna registrazione richiesta

Converti JSON in C# →

Convenzioni di denominazione C# e annotazioni

C# segue convenzioni di denominazione rigorose che differiscono dal tipico camelCase o snake_case di JSON. Il generatore applica automaticamente queste trasformazioni preservando i nomi delle proprietà JSON originali tramite attributi di serializzazione.

  • Proprietà PascalCase — tutti i nomi delle proprietà generate vengono convertiti in PascalCase (es., user_name diventa UserName) seguendo le linee guida di denominazione .NET di Microsoft
  • Pattern di annotazione — ogni proprietà include l'attributo di serializzazione appropriato ([JsonPropertyName] o [JsonProperty]) che mappa la proprietà PascalCase al nome della chiave JSON originale
  • Inferenza dei tipi — il generatore deduce i tipi C# dai valori JSON: le stringhe diventano string, i numeri diventano int o double, i booleani diventano bool

Domande frequenti

Come gestisce il generatore i tipi riferimento nullable?

Quando un valore JSON è null, il generatore produce un tipo riferimento nullable (string? invece di string). Questo segue le convenzioni dei tipi riferimento nullable di C# 8+ e ti aiuta a rilevare potenziali eccezioni di riferimento null in fase di compilazione.

Devo usare List<T> o array per gli array JSON?

Il generatore usa List<T> per impostazione predefinita perché offre funzionalità più ricche (Add, Remove, Contains) ed è il tipo di collezione più comune nelle codebase C#. Puoi cambiare manualmente il tipo generato se necessario.

Posso generare record invece di classi?

Sì. La modalità record genera tipi record C# 9+ con proprietà init-only. I record sono ideali per gli oggetti di trasferimento dati perché forniscono immutabilità, uguaglianza basata sui valori e sintassi concisa.

Strumenti correlati