Generatore di classi da JSON

Genera classi C#, TypeScript, Java, Python e Go a partire da un JSON, con i nomi originali conservati.

Convertitori

            

Perché serve un generatore

Quando un'interfaccia risponde in JSON, prima o poi quel JSON va letto da un programma: una classe in C#, un'interfaccia in TypeScript, una dataclass in Python. Scriverle a mano è meccanico e insidioso, perché l'errore non è mai nella struttura — che si copia — ma nei dettagli: una proprietà che cambia maiuscole, un campo che nell'originale si chiama full_name e nel tuo linguaggio diventerebbe FullName. Un generatore fa il lavoro noioso e non si distrae.

Cosa conserva e cosa adatta

I nomi delle classi e dei membri seguono le convenzioni del linguaggio di destinazione: PascalCase per C#, camelCase per i campi Java, snake_case dove è d'uso. I nomi originali del JSON non si perdono mai: C# li annota con JsonPropertyName, Java con JsonProperty, Go li mette nei tag json, Python li lascia nel commento accanto al campo. Il risultato deserializza il JSON di partenza così com'è.

Gli array con elementi diversi

Capita che gli elementi di un array non abbiano tutti la stessa forma: un campo c'è solo in alcuni, o un numero è intero in un elemento e decimale in un altro. Lo strumento fonde gli elementi in un'unica classe: le proprietà presenti solo in alcuni diventano facoltative, e i tipi si allargano al più generale che li contiene tutti. È l'unica ricostruzione onesta possibile quando le forme differiscono.

I tuoi dati non lasciano il browser

Come tutti gli strumenti di questo sito, la conversione avviene interamente sul tuo computer. Il JSON che incolli — che può contenere risposte di sistemi interni o dati di clienti — non viene inviato ad alcun server, non viene registrato e non compare in nessun log.

Domande frequenti

Sì. Quando il nome generato differisce da quello del JSON, il generatore aggiunge ciò che serve perché la corrispondenza resti esatta: JsonPropertyName in C#, JsonProperty in Java, il tag json in Go, un commento in Python. I nomi che sono già validi restano invece quelli originali.

Gli elementi vengono fusi in una classe sola: i campi presenti ovunque diventano obbligatori, quelli presenti solo in alcuni diventano facoltativi e i tipi numerici si allargano al più generale. È lo stesso criterio che applicherebbe una persona, applicato in modo uniforme.

No. La generazione avviene interamente nel tuo browser: il contenuto non lascia mai il tuo computer e non viene registrato da nessuna parte.

Strumenti correlati