JSON zu C# Klasse
Fügen Sie ein JSON-Beispiel ein und erhalten Sie C# POCO-Klassen, die bereit sind, in eine .cs-Datei eingefügt zu werden. Wählt sinnvolle Typen, behandelt verschachtelte Objekte mit zusätzlichen Klassendefinitionen, unterstützt nullable Referenztypen und gibt entweder System.Text.Json oder Newtonsoft.Json-Attribute je nach Ihrem Projekt aus.
Wie man JSON in C# konvertiert
-
1
Fügen Sie das JSON ein
Ein einzelnes Beispiel reicht aus. Mehrere Beispiele verbessern die Inferenz von nullable und Array-Elementen.
-
2
Wählen Sie den Stil
System.Text.Json (.NET 6+) oder Newtonsoft.Json (legacy). PascalCase-Eigenschaftsnamen mit `[JsonPropertyName]` für camelCase JSON.
-
3
Wählen Sie die Ziel-C#-Version
C# 10+ für Records und dateigebundene Namensräume, C# 8 für nullable Referenztypen oder älter für maximale Kompatibilität.
-
4
Kopieren Sie die Klassen
Eine Root-Klasse plus verschachtelte Klassen für jede Objektform, alles in einer Datei, bereit zum Einfügen in Ihr Projekt.
Beispielausgabe
Für die Eingabe:
{ "firstName": "Alice", "age": 30, "emails": ["a@a.com"], "address": { "city": "Madrid" } }
System.Text.Json-Ausgabe (C# 10+):
public class User
{
[JsonPropertyName("firstName")]
public string FirstName { get; set; } = default!;
[JsonPropertyName("age")]
public int Age { get; set; }
[JsonPropertyName("emails")]
public List<string> Emails { get; set; } = new();
[JsonPropertyName("address")]
public Address Address { get; set; } = default!;
}
public class Address
{
[JsonPropertyName("city")]
public string City { get; set; } = default!;
}
Typzuordnung
| JSON | C#-Typ |
|---|---|
| string | string |
| integer | int (oder long für > int.MaxValue) |
| number (decimal) | double (oder decimal, wenn gewählt) |
| boolean | bool |
| null | object? (oder mit Geschwister zusammengeführt) |
| ISO-8601-Datum | DateTime (oder DateOnly) |
| GUID-geformter String | Guid |
| Array von Strings | List<string> |
| Objekt | Verschachtelte Klasse |
Attributoptionen
- System.Text.Json (
[JsonPropertyName("foo")]), bevorzugt für .NET 6+ und neue Projekte. - Newtonsoft.Json (
[JsonProperty("foo")]), für Legacy-Projekte oder wenn Sie spezifische Funktionen von Newtonsoft benötigen. - Keine, Eigenschaftsnamen stimmen genau mit JSON-Schlüsseln überein (funktioniert nur, wenn JSON-Schlüssel bereits PascalCase sind).
Häufige Fehler
- Verwendung von
intfür ein Feld, das überlaufen könnte. Wenn Ihr JSON Werte hat, dieint.MaxValueüberschreiten, verwenden Sielong. Der Generator fördert automatisch, wenn er große Werte sieht. - Fehlendes
[JsonIgnore]für berechnete Eigenschaften. Wenn Sie Hilfseigenschaften zur generierten Klasse hinzufügen, dekorieren Sie diese mit[JsonIgnore], sonst werden sie beim Serialisieren ausgegeben. - Vergessen der kulturunabhängigen Analyse.
decimal-Felder sollten mitCultureInfo.InvariantCulturedeserialisiert werden; System.Text.Json macht dies standardmäßig, Newtonsoft mit globalen Einstellungen. - Vertrauen auf den Generator mit einem Beispiel. Nullbarkeit und Array-Elementtypen werden aus dem, was er sieht, geschätzt. Überprüfen Sie immer die nullable-Anmerkungen gegen das tatsächliche API-Verhalten.
Häufig gestellte Fragen
Für neue Projekte auf .NET 6+ verwenden Sie System.Text.Json, es ist schneller, integriert und unterstützt jetzt fast jede Funktion, die Newtonsoft bietet. Verwenden Sie Newtonsoft für Legacy-Projekte oder wenn Sie spezifische Funktionen benötigen (benutzerdefinierte Vertragsauflöser, JObject, dynamische Verarbeitung).
Records sind idiomatisch für unveränderliche DTOs in C# 10+. Sie bieten Wertgleichheit und eine prägnante Syntax. Klassen sind besser, wenn Sie Mutation oder Legacy-Kompatibilität benötigen. Das Tool ermöglicht Ihnen die Auswahl.
Wenn Ihr Projekt nullable Referenztypen verwendet (C# 8+), werden Felder, die in einem Beispiel als null beobachtet werden, zu string?, int? usw. Ohne NRT wird die Nullbarkeit nur für Werttypen signalisiert (z. B. int?).
Gemischte Arrays unterschiedlicher Objektformen sind in stark typisierten C# nicht direkt darstellbar. Das Tool leitet eine gemeinsame Basisklasse oder (Fallback) object ab; für gemischte Arrays möchten Sie normalerweise das JSON neu gestalten.
Verwandte Tools
ASCII-Tabelle Referenz
Vollständige ASCII-Tabelle von 0 bis 127 mit Dezimal-, Hex-, Oktal-, Binär- und numerischer HTML-Zeichenreferenz für jedes Zeichen, einschließlich Steuerzeichen wie NUL, LF und DEL.
HTML-Zeichenreferenz
Durchsuchbare Liste von HTML-Entitäten, ihren benannten und numerischen Codes sowie eine Ein-Klick-Kopie für Sonderzeichen und Symbole.
Farbrad-Explorer
Erforschen Sie das Farbrad interaktiv. Rotieren Sie Harmonien, vergleichen Sie HSL mit RYB, erkennen Sie komplementäre und triadische Paare in Echtzeit.
Referenz für Tastenkombinationen
Durchsuchen Sie dokumentierte Standardkürzel für VS Code, Chrome und Bash mit GNU Readline unter macOS, Windows und Linux.
Zufallsbuchstaben-Generator
Erzeugen Sie zufällige A-Z-Buchstaben. Wählen Sie Anzahl, Großschreibung, Kleinschreibung oder gemischte Schreibweise für Spiele, Aufgaben und Unterricht.
HTML-Formatter
Formatieren Sie HTML lokal im Browser mit zwei oder vier Leerzeichen Einrückung. HTML wird weder hochgeladen noch validiert.
Tool in anderen Sprachen verfügbar
- JSON ke Kelas C# [ID]
- JSON na klasę C# [PL]
- JSON ถึงคลาสใน C# [TH]
- Từ JSON đến lớp C# [VI]
- JSON para Classe C# [PT]
- JSON a Clase C# [ES]
- تحويل JSON إلى فئة C# [AR]
- JSONからC#クラスへ [JA]
- JSON vers classe C# [FR]
- JSON을 C# 클래스로 [KO]
- JSON till C#-klass [SV]
- JSON naar C#-klasse [NL]
- JSON to C# Class [EN]
- JSON in classe C# [IT]
- JSON в класс C# [RU]
- JSON'ten C# Sınıfına [TR]
- 从 JSON 到 C# 类 [ZH]