JSON in C# Class
Genera classi C# da JSON, nel tuo browser.
A cosa serve
Da JSON a classi C# pronte per .NET
Compatibile con .NET moderno
Le classi generate funzionano con System.Text.Json per .NET 5 e successivi e con Newtonsoft.Json. Pronte per ASP.NET Core e .NET MAUI.
100% privato
Il tuo JSON viene elaborato nel browser. Non viene mai inviato a server esterni. Sicuro per API riservate.
Codice C# idiomatico
Auto-proprieta, PascalCase, tipi nullable corretti. Codice che segue le convenzioni ufficiali Microsoft.
Istantaneo
Generazione delle classi in millisecondi. Nessuna installazione, nessuna registrazione, nessuna attesa.
Come funziona
Tre passaggi, senza complicazioni
Incolla il tuo JSON
Incolla qualsiasi oggetto JSON valido. Il parser rileva i tipi, i campi opzionali e le strutture annidate.
Genera le classi C#
Vengono generate classi C# con auto-proprieta, tipi nullable per i campi opzionali e classi annidate.
Copia e usa nel tuo progetto
Copia il codice generato in Visual Studio o VS Code. Compatibile con System.Text.Json e Newtonsoft.Json senza modifiche.
FAQ
Hai delle domande?
Le auto-proprieta con la sintassi get set sono una caratteristica di C# che permette di dichiarare proprieta senza scrivere manualmente il campo di supporto. Invece di dichiarare un campo privato e i suoi accessor espliciti, scrivi semplicemente la proprieta con il tipo e il nome e il compilatore genera automaticamente il campo di supporto. Questo rende il codice piu conciso e leggibile.
Le convenzioni di naming .NET, documentate nelle linee guida Microsoft, specificano che le proprieta pubbliche devono usare il PascalCase, a differenza di Java che usa il camelCase. Tuttavia, System.Text.Json e Newtonsoft.Json possono mappare automaticamente tra PascalCase in C# e camelCase in JSON usando JsonPropertyName o la configurazione di serializzazione.
Quando un campo e presente in alcuni oggetti JSON ma non in altri, viene dedotto come opzionale e generato con un tipo nullable come string?, int? o bool?. Questo richiede C# 8.0 o versioni successive con il contesto nullable abilitato. I tipi nullable prevengono le NullReferenceException quando si accede a campi che potrebbero non essere presenti nella risposta JSON.
Gli oggetti JSON annidati vengono convertiti in classi C# separate nello stesso file. Ogni classe annidata viene generata come una normale classe pubblica, non come classe interna, seguendo la convenzione C# di una classe per responsabilita. I riferimenti tra le classi vengono stabiliti tramite il tipo della proprieta.
System.Text.Json e incluso in .NET Core 3.0 e versioni successive ed e l'opzione raccomandata per i nuovi progetti perche e piu veloce e non richiede dipendenze esterne. Newtonsoft.Json, noto anche come Json.NET, ha piu funzionalita ed e piu flessibile, ed e preferito quando hai bisogno di convertitori personalizzati complessi o compatibilita con progetti piu vecchi. Le classi generate da questo strumento sono compatibili con entrambi senza modifiche.
Classi C#, record type, serializzazione JSON in .NET e sviluppo con ASP.NET Core
C# e il linguaggio principale dell'ecosistema .NET di Microsoft, ampiamente usato per API web con ASP.NET Core, applicazioni desktop con WPF e WinForms, e applicazioni multipiattaforma con .NET MAUI. Nello sviluppo di API REST con ASP.NET Core, i modelli di dati detti anche DTO o view model sono classi C# che rappresentano il corpo delle richieste e risposte JSON.
Con C# 9.0 e .NET 5 e versioni successive, Microsoft ha introdotto i record type: classi immutabili con uguaglianza basata sul valore, ideali per i DTO. A differenza delle classi normali, i record sono immutabili per default e richiedono meno codice ripetitivo. Tuttavia, per gli scenari in cui gli oggetti devono essere mutabili come nella deserializzazione da JSON, le classi con auto-proprieta rimangono l'opzione standard.
System.Text.Json, introdotto in .NET Core 3.0, sostituisce Newtonsoft.Json come libreria di serializzazione JSON raccomandata. E significativamente piu veloce e ha un impatto di memoria minore, aspetto importante per le API ad alte prestazioni. Nei benchmark, System.Text.Json supera Newtonsoft in velocita di serializzazione e deserializzazione. Convertir.ai genera classi compatibili con entrambe le librerie, elaborando tutto nel tuo browser senza inviare dati a server.