Vai al contenuto
100% locale

JSON a classe C#

Converti un esempio JSON in classi C# pronte all'uso.

Ingresso
Uscita

JSON a classe C#

Incolla un oggetto JSON o un array di oggetti JSON e questo strumento deduce la struttura e genera le corrispondenti classi C#. È progettato per l'attività quotidiana di convertire una risposta API, un file di configurazione o un payload di esempio in modelli fortemente tipizzati senza scriverli manualmente.

Le opzioni controllano l'aspetto del codice generato. Scegli attributi per System.Text.Json ([JsonPropertyName]), Newtonsoft.Json ([JsonProperty]) o nessuno — gli attributi vengono aggiunti automaticamente ogni volta che il cambio PascalCase modifica un nome di proprietà, quindi la chiave JSON originale non viene mai persa. Scegli proprietà o campi, attiva o disattiva i tipi di riferimento nullable, genera un record al posto di una class e scegli List<T> o T[] per gli array. Gli oggetti annidati diventano le proprie classi denominate in base alla proprietà che le contiene, e una dichiarazione di namespace avvolge tutto quando ne fornisci una.

Lo strumento unisce le forme di ogni elemento quando incolla un array, quindi una chiave che è presente solo su alcuni elementi diventa una proprietà opzionale e nullable invece di scomparire silenziosamente. I numeri rimangono numeri interi (int, allargandosi a long per valori più grandi) a meno che un punto decimale non forzi double, e un valore che è sempre null diventa un oggetto nullable. I nomi di classe e proprietà sono automaticamente sanificati e deduplati, quindi le chiavi JSON non valide o ripetute non producono mai C# rotto.

Tutto viene eseguito localmente nel tuo browser — il tuo JSON non viene mai caricato o inviato a un server, il che è importante quando il campione proviene da un'API privata o contiene dati reali dei clienti. Copia le classi generate, scaricale come file .txt o rimanda l'output all'input per perfezionarlo ulteriormente.

FAQ

Come decide tra int, long e double?
I numeri interi diventano int, o long quando superano l'intervallo a 32 bit. Qualsiasi numero con un punto decimale o che non concorda con un numero intero altrove in un array diventa double.
Cosa succede a una proprietà mancante in alcuni elementi dell'array?
Viene generata come proprietà nullable. Con i tipi di riferimento nullable attivati, ciò aggiunge un "?"; lo stesso vale per un valore che è sempre null.
Può mantenere la chiave JSON originale quando rinomina una proprietà?
Sì. Ogni volta che il cambio PascalCase o la sanitizzazione modifica un nome di proprietà, la chiave originale viene preservata in un attributo [JsonPropertyName] o [JsonProperty], a seconda dello stile di attributo che scegli.
Genera classi nidificate per gli oggetti nidificati?
Sì. Ogni oggetto nidificato ottiene la sua propria classe denominata in base alla proprietà che lo contiene, e gli array di oggetti generano una classe denominata in base alla forma singolare di quella proprietà.
Il mio JSON viene caricato da qualche parte?
No. La conversione viene eseguita interamente nel tuo browser — il tuo JSON non lascia mai il tuo dispositivo.