Machen Sie aus einem JSON-Beispiel C#-Klassen oder Records für System.Text.Json oder Newtonsoft.Json
Läuft in Ihrem Browser. Nichts, was Sie eingeben, wird irgendwohin gesendet. Geprüft am 16. Oktober 2026.Fügen Sie ein JSON-Beispiel ein und erhalten Sie C#-Klassen oder Records mit Eigenschaften in PascalCase und dem JSON-Schlüssel in einem Attribut JsonPropertyName oder JsonProperty. Ganze Zahlen werden zu int, über 2.147.483.647 zu long, jede Dezimalzahl macht ein Feld zu double, und ein Wert, der null ist oder fehlt, wird nullable, etwa int?.
Diese Seite wurde maschinell aus dem englischen Original übersetzt. Die Übersetzung wurde noch von keinem Menschen geprüft; maßgeblich ist die englische Fassung. Englisches Original lesen
Fügen Sie ein JSON-Beispiel, etwa eine API-Antwort, in das linke Feld ein.
Die C#-Klassen erscheinen während der Eingabe, eine pro Objekt, mit Eigenschaften in PascalCase und dem JSON-Schlüssel jeweils in einem Attribut.
Wählen Sie System.Text.Json oder Newtonsoft.Json und Records mit init, wenn Sie unveränderliche Modelle bevorzugen.
Klicken Sie auf Kopieren oder auf Herunterladen, um Models.cs zu speichern, und deserialisieren Sie in die Wurzelklasse.
C# liest JSON in typisierte Klassen ein, und jede Eigenschaft braucht den richtigen Typ und einen Weg, ihren Schlüssel zu finden. Dieser Konverter schreibt diese Klassen aus einem Beispiel, sodass eine lange API-Antwort mit einem Einfügen zu einem kompilierbaren Modell wird.
Wie die Typen gewählt werden.
| JSON-Wert | C#-Typ |
|---|---|
| "text" | string |
| true / false | bool |
| 42 (nur ganze Zahlen) | int, oder long über 32 Bit hinaus |
| 4.5 (irgendeine Dezimalzahl gesehen) | double |
| null und zusätzlich ein Typ | int?, string? |
| nur null oder gemischte Arten | object? |
| [ ... ] | List<...> |
| { } leer | Dictionary<string, object> |
| { ... } | eine eigene Klasse |
Schlüssel und Namen. Eigenschaften stehen in PascalCase, sodass aus user_name UserName und aus avatar_url AvatarUrl wird. Jede Eigenschaft trägt ihren ursprünglichen Schlüssel in einem Attribut, weil System.Text.Json Namen standardmäßig unter Beachtung der Groß- und Kleinschreibung abgleicht; Newtonsoft erhält stattdessen [JsonProperty]. Eine Eigenschaft, die den Namen ihrer Klasse tragen würde, was der Compiler als CS0542 ablehnt, erhält ein angehängtes Value.
Arrays von Objekten. Alle Objekte eines Arrays werden zu einer Klasse zusammengeführt, sodass ein Schlüssel, der nur in einigen vorkommt, trotzdem vorhanden ist, als nullable, damit sein Fehlen als null gelesen wird und nicht als 0 oder false. Zwei Objekte mit genau denselben Schlüsseln und Typen teilen sich eine Klasse.
Optionen. Records mit init ergeben unveränderliche Modelle, die nach Wert verglichen werden. Die Wurzelklasse heißt Root, sofern Sie keinen Namen vergeben. Ist das JSON selbst ein Array oder ein einzelner Wert, nennt ein Kommentar den Typ, in den deserialisiert wird, etwa List.
Jede Ausgabe wurde geprüft, indem das C# zurückgelesen und 9 Beispiele nach den Regeln der Serializer damit abgeglichen wurden. Nichts, was Sie einfügen, verlässt den Browser.
Fügen Sie ein JSON-Beispiel in den Konverter ein, und die C#-Klassen erscheinen daneben, eine pro Objekt, mit einem Attribut JsonPropertyName an jeder Eigenschaft. Kopieren Sie sie in Ihr Projekt und lesen Sie das JSON mit JsonSerializer.Deserialize<Root>(json) oder mit JsonConvert.DeserializeObject<Root>(json), wenn Newtonsoft gewählt ist.
System.Text.Json gleicht Eigenschaftsnamen standardmäßig unter Beachtung der Groß- und Kleinschreibung ab, sodass eine Eigenschaft namens UserName den Schlüssel user_name nie erhielte. Das Attribut nennt den genauen Schlüssel, was die C#-Namen in PascalCase hält und das JSON trotzdem ohne Serializer-Optionen oder Namensrichtlinie liest.
Eine Eigenschaft ist nullable, wenn das Beispiel null für sie zeigt oder wenn manche Objekte eines Arrays ihren Schlüssel weglassen. Ohne das Fragezeichen würde eine fehlende Zahl stillschweigend als 0 gelesen und ein fehlendes Flag als false, daher hält der nullable Typ fehlend und null auseinander.
Records mit init-Accessoren eignen sich für Modelle, die Sie nur lesen, weil sich ihre Eigenschaften nach der Deserialisierung nicht ändern können und zwei Records mit gleichen Werten als gleich gelten. Klassen mit set eignen sich für Modelle, die Sie befüllen oder bearbeiten. Beide funktionieren mit System.Text.Json ab .NET 5 und mit Newtonsoft.Json.
Ganze Zahlen werden zu int, oder zu long, wenn ein Wert über 2.147.483.647 liegt, und ein Feld wird zu double, sobald irgendein Beispielwert Nachkommastellen hat. Werte unterschiedlicher Art, etwa eine Zahl in einem Element und Text in einem anderen, werden zu object?, das den rohen JSON-Wert behält.
Nein. Die Umwandlung läuft in Ihrem Browser ohne Anfrage an einen Server, und das JSON wird nicht gespeichert, sodass API-Antworten mit Tokens oder persönlichen Daten auf Ihrem Gerät bleiben. Schließen Sie den Tab, und nichts bleibt zurück.
Sätze und Regeln ändern sich; prüfen Sie die Quelle, bevor Sie sich auf eine Zahl verlassen.
Kommen Sie nicht weiter? Fragen Sie zu JSON-zu-C#-Klassen-Konverter und jeder, der es weiß, kann antworten. Kein Konto nötig.