JSON in C# Class
C#-Klassen aus JSON generieren, in deinem Browser.
Wofür es gedacht ist
JSON zu C#-Klassen, bereit für .NET
Kompatibel mit modernem .NET
Generierte Klassen funktionieren mit System.Text.Json (.NET 5+) und Newtonsoft.Json. Bereit für ASP.NET Core und .NET MAUI.
100% privat
Dein JSON wird im Browser verarbeitet. Nie an externe Server gesendet. Sicher für vertrauliche APIs.
Idiomatischer C#-Code
Auto-Properties, PascalCase, korrekte Nullable-Typen. Code nach offiziellen Microsoft-Konventionen.
Sofortig
Klassen-Generierung in Millisekunden. Keine Installation, keine Anmeldung, kein Warten.
So funktioniert es
Drei Schritte, kein Aufwand
Dein JSON einfügen
Füge ein beliebiges gültiges JSON-Objekt ein. Der Parser erkennt Typen, optionale Felder und verschachtelte Strukturen.
C#-Klassen generieren
C#-Klassen werden mit Auto-Properties, Nullable-Typen für optionale Felder und verschachtelten Klassen generiert.
Kopieren und im Projekt verwenden
Kopiere den generierten Code in Visual Studio oder VS Code. Kompatibel mit System.Text.Json und Newtonsoft.Json ohne Modifikationen.
FAQ
Noch Fragen?
Auto-Properties ({ get; set; }) sind ein C#-Feature, das die Deklaration von Properties ohne manuelles Schreiben des Backing-Felds ermöglicht. Statt ein privates Feld und seine expliziten Accessoren zu deklarieren, schreibst du einfach public string Name { get; set; } und der Compiler generiert das Backing-Feld automatisch. Das macht den Code knapper und lesbarer.
.NET-Namenskonventionen (in Microsofts Richtlinien dokumentiert) legen fest, dass öffentliche Properties PascalCase verwenden sollen (PropertyName), im Gegensatz zu Java, das camelCase verwendet. System.Text.Json und Newtonsoft.Json können jedoch automatisch zwischen PascalCase in C# und camelCase in JSON über JsonPropertyName oder Serialisierungskonfiguration mappen.
Wenn ein Feld in einigen JSON-Objekten vorhanden ist, in anderen jedoch nicht, wird es als optional abgeleitet und mit einem Nullable-Typ generiert (string?, int?, bool?). Das erfordert C# 8.0 oder höher mit aktiviertem Nullable-Kontext. Nullable-Typen verhindern NullReferenceException beim Zugriff auf Felder, die in der JSON-Antwort möglicherweise nicht vorhanden sind.
Verschachtelte JSON-Objekte werden in separate C#-Klassen in derselben Datei konvertiert. Jede verschachtelte Klasse wird als reguläre öffentliche Klasse generiert (nicht als Inner-Class), gemäß der C#-Konvention einer Klasse pro Verantwortung. Verweise zwischen Klassen werden über den Property-Typ hergestellt.
System.Text.Json ist in .NET Core 3.0+ enthalten und die empfohlene Option für neue Projekte: Es ist schneller und benötigt keine externen Abhängigkeiten. Newtonsoft.Json (Json.NET) hat mehr Features und ist flexibler, wird bevorzugt wenn du komplexe Custom-Converter oder Kompatibilität mit älteren Projekten benötigst. Von diesem Tool generierte Klassen sind ohne Modifikationen mit beiden kompatibel.
C#-Klassen, Record-Typen, .NET-JSON-Serialisierung und ASP.NET-Core-Entwicklung
C# ist die primäre Sprache des .NET-Ökosystems von Microsoft, wird umfassend für Web-APIs mit ASP.NET Core, Desktop-Anwendungen mit WPF/WinForms und plattformübergreifende Anwendungen mit .NET MAUI genutzt. In der REST-API-Entwicklung mit ASP.NET Core sind Datenmodelle (auch DTOs oder View-Models genannt) C#-Klassen, die den Body von JSON-Anfragen und -Antworten repräsentieren.
Mit C# 9.0 und .NET 5+ führte Microsoft Record-Typen ein: unveränderliche Klassen mit wertbasierter Gleichheit, ideal für DTOs. Im Gegensatz zu regulären Klassen sind Records standardmäßig unveränderlich und erfordern weniger Boilerplate-Code. Für Szenarien, in denen Objekte veränderbar sein müssen (z. B. beim Deserialisieren aus JSON), bleiben Klassen mit Auto-Properties jedoch die Standardoption.
System.Text.Json, eingeführt in .NET Core 3.0, ersetzt Newtonsoft.Json als empfohlene JSON-Serialisierungs-Bibliothek. Es ist erheblich schneller und hat einen kleineren Speicher-Footprint, was für leistungsstarke APIs wichtig ist. In Benchmarks übertrifft System.Text.Json Newtonsoft bei der Serialisierungs- und Deserialisierungsgeschwindigkeit. Convertir.ai generiert Klassen, die mit beiden Bibliotheken kompatibel sind, und verarbeitet alles in deinem Browser, ohne Daten an Server zu senden.