DocumentiImmaginiMediaStrumenti PDF

JSON in C# Class

Genera classi C# da JSON, nel tuo browser.

Processed in your browser

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.

Tre passaggi, senza complicazioni

1

Incolla il tuo JSON

Incolla qualsiasi oggetto JSON valido. Il parser rileva i tipi, i campi opzionali e le strutture annidate.

2

Genera le classi C#

Vengono generate classi C# con auto-proprieta, tipi nullable per i campi opzionali e classi annidate.

3

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.

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.