Tool von Tool Kumar
C#-Klassen aus JSON generieren
Generiere C#-Modelle für System.Text.Json. Die Standardausgabe versieht jede Eigenschaft mit einem JsonPropertyName-Attribut. Für Felder, die in jedem Beispieldatensatz vorkommen, verwendet sie required.
So verwendest du dieses Tool
- Füge eine repräsentative Antwort ein, auch mit Datensätzen, deren Felder sich unterscheiden.
- Prüfe die generierte Ausgabe und ändere bei Bedarf den Stammnamen.
- Kopiere den Code oder lade ihn herunter. Prüfe anschließend die Typen anhand deines API-Vertrags.
Praxisbeispiel
Diese Ausgabe stammt aus dem integrierten Konverter. Aus den beiden Artikelpreisen wird ein Gleitkommafeld abgeleitet. Die Werte null und ein String im Feld note ergeben ein Feld, das null sein kann.
Eingabe
{
"user-id": 42,
"profile": {
"city": "London",
"created_at": "2026-10-14T09:00:00Z"
},
"items": [
{
"price": 12,
"note": null
},
{
"price": 12.5,
"note": "gift"
}
]
}Ausgabe
using System.Collections.Generic;
using System.Text.Json.Serialization;
public class Root
{
[JsonPropertyName("user-id")]
public required long UserId { get; set; }
[JsonPropertyName("profile")]
public required Profile Profile { get; set; }
[JsonPropertyName("items")]
public required List<Item> Items { get; set; }
}
public class Profile
{
[JsonPropertyName("city")]
public required string City { get; set; }
[JsonPropertyName("created_at")]
public required string CreatedAt { get; set; }
}
public class Item
{
[JsonPropertyName("price")]
public required double Price { get; set; }
[JsonPropertyName("note")]
public required string? Note { get; set; }
}
Mit System.Text.Json deserialisieren
Kopiere die Klassen in dein .NET-Projekt und aktiviere Nullable-Annotationen. JsonPropertyName-Attribute ordnen PascalCase-Eigenschaften den exakten Eingabeschlüsseln zu.
Verwende eine .NET-Version, deren System.Text.Json required-Member unterstützt, etwa .NET 7 oder neuer. Konfiguriere die Serializer-Optionen für deine Anwendung.
using System.Text.Json;
Root? model = JsonSerializer.Deserialize<Root>(responseBody);Optionen und Sonderfälle
- Standard ist System.Text.Json. Wähle unter „Weitere Optionen“ die Option „Newtonsoft“, um JsonProperty-Attribute von Newtonsoft.Json und JToken für unbekannte Werte zu erhalten.
- Generierte required-Member benötigen C# 11 oder neuer. Die Syntax für nullable Referenztypen setzt aktivierte Nullable-Annotationen voraus.
- Ganzzahlen verwenden long, Ganzzahlen jenseits des vorzeichenbehafteten 64-Bit-Bereichs decimal und Brüche double. Auch decimal hat einen endlichen Wertebereich. Wähle für größere Werte eine eigene Darstellung.
- Ein nullable Feld kann trotzdem erforderlich sein, wenn sein Schlüssel in jedem Datensatz vorkommt. Erforderliches Vorhandensein und das Zulassen von null sind getrennte Regeln. Datumswerte bleiben string.
Standardmäßig privat
Dein Dokument bleibt in diesem Browser. Tool Kumar parst und konvertiert Daten und erstellt Downloads auf deinem Gerät, ohne Konto und ohne Upload.
C#-Klassen aus JSON generieren: häufige Fragen
- Verwendet das Tool System.Text.Json oder Newtonsoft.Json?
- Standardmäßig System.Text.Json mit JsonPropertyName-Attributen. Wähle im Menü „Weitere Optionen“ des Konverters „Newtonsoft“, um stattdessen JsonProperty-Attribute von Newtonsoft.Json zu erzeugen.
- Welche C#-Version benötigt die Ausgabe?
- C# 11 oder neuer für required-Member. Aktiviere nullable Referenztypen, damit string? und andere Referenzannotationen wie vorgesehen funktionieren.
- Warum kann eine required-Eigenschaft auch nullable sein?
- Der Schlüssel kommt in jedem Beispieldatensatz vor, aber sein Wert kann null sein. Zum Beispiel modelliert required string? Note das Vorhandensein unabhängig vom Werttyp.
- Generiert das Tool Listen und verschachtelte Klassen?
- Ja. Arrays aus Objekten werden zu List<Item>. Für jede verschachtelte Struktur wird eine Klasse generiert.
Verwandte Tools
JSON in Java konvertieren, JSON in TypeScript konvertieren und JSON Schema generieren.