Skip to main content
CheckTown
Konverter

JSON zu C#: .NET-Klassen aus API-Antworten generieren

Veröffentlicht 5 Min. Lesezeit
In diesem Artikel

Warum C#-Klassen aus JSON generieren?

Bei der Arbeit mit REST-APIs in .NET oder Unity benötigst du stark typisierte C#-Klassen, um JSON-Antworten zu deserialisieren. Diese Klassen von Hand zu schreiben ist mühsam und fehleranfällig, besonders bei tief verschachtelten API-Payloads mit Dutzenden von Eigenschaften. Ein JSON-zu-C#-Generator analysiert die JSON-Struktur und erzeugt automatisch einsatzbereite Klassendefinitionen.

Das ist besonders wertvoll beim schnellen Prototyping. Du fügst eine Beispiel-API-Antwort ein, erhältst perfekt strukturierte C#-Klassen und arbeitest sofort mit typisierten Daten, statt dich mit dynamischen Objekten oder Dictionary-Zugriffen herumzuschlagen. Der generierte Code folgt den C#-Konventionen und enthält die korrekten Serialisierungsattribute für das von dir gewählte Framework.

Ausgabemodi und Serialisierungsoptionen

Der Generator unterstützt mehrere Ausgabeformate, die zum Coding-Stil und zur .NET-Version deines Projekts passen. Jeder Modus erzeugt idiomatisches C#, das ohne Änderungen kompiliert.

  • Class vs. Record — traditionelle veränderliche Klassen für ältere .NET-Projekte oder C#-9+-Records für unveränderliche Data Transfer Objects mit integrierter Wertgleichheit
  • System.Text.Json — der moderne, hochperformante Serializer, der in .NET Core 3.1+ integriert ist und [JsonPropertyName]-Attribute für die Eigenschaftszuordnung verwendet
  • Newtonsoft.Json — die weit verbreitete Json.NET-Bibliothek, die [JsonProperty]-Attribute verwendet und in älteren .NET-Framework- und Unity-Projekten nach wie vor dominiert

Kostenlos testen – keine Registrierung erforderlich

JSON zu C# konvertieren →

C#-Namenskonventionen und Annotationen

C# folgt strengen Namenskonventionen, die sich vom typischen camelCase oder snake_case in JSON unterscheiden. Der Generator wendet diese Umwandlungen automatisch an und bewahrt dabei die ursprünglichen JSON-Eigenschaftsnamen über Serialisierungsattribute.

  • PascalCase-Eigenschaften — alle generierten Eigenschaftsnamen werden gemäß den .NET-Namensrichtlinien von Microsoft in PascalCase umgewandelt (z. B. wird user_name zu UserName)
  • Annotationsmuster — jede Eigenschaft enthält das passende Serialisierungsattribut ([JsonPropertyName] oder [JsonProperty]), das die PascalCase-Eigenschaft wieder dem ursprünglichen JSON-Schlüsselnamen zuordnet
  • Typinferenz — der Generator leitet C#-Typen aus JSON-Werten ab: Strings werden zu string, Zahlen werden zu int oder double, Booleans werden zu bool und null-Werte werden zu Nullable-Referenztypen

Häufig gestellte Fragen

Wie behandelt der Generator Nullable-Referenztypen?

Wenn ein JSON-Wert null ist, erzeugt der Generator einen Nullable-Referenztyp (string? statt string). Das folgt den Konventionen für Nullable-Referenztypen ab C# 8 und hilft dir, potenzielle Null-Referenz-Ausnahmen bereits zur Kompilierzeit statt zur Laufzeit zu erkennen.

Sollte ich List<T> oder Arrays für JSON-Arrays verwenden?

Der Generator verwendet standardmäßig List<T>, weil es umfangreichere Funktionen (Add, Remove, Contains) bietet und der häufigste Sammlungstyp in C#-Codebasen ist. Wenn du für performancekritische Szenarien oder API-Verträge mit fester Größe Arrays benötigst, kannst du den generierten Typ manuell ändern.

Kann ich Records statt Klassen generieren?

Ja. Der Record-Ausgabemodus erzeugt Record-Typen ab C# 9 mit init-only-Eigenschaften. Records eignen sich ideal für Data Transfer Objects, da sie Unveränderlichkeit, wertbasierte Gleichheit und eine kompakte Syntax mit Positionsparametern bieten. Sie benötigen .NET 5+ oder C# 9+ zum Kompilieren.

Verwandte Tools