JSON naar C#-klasse
Plak een JSON-voorbeeld en krijg C#-POCO-klassen die je meteen in een .cs-bestand kunt plakken. De tool kiest zinnige typen, verwerkt geneste objecten met extra klassedefinities, ondersteunt nullbare referentietypen en genereert, afhankelijk van je project, attributen voor System.Text.Json of Newtonsoft.Json.
JSON naar C# converteren
-
1
Plak de JSON
Eén voorbeeld is voldoende. Meerdere voorbeelden verbeteren de inferentie van nullbaarheid en van de typen van array-elementen.
-
2
Kies de stijl
System.Text.Json (.NET 6+) of Newtonsoft.Json (legacy). Eigenschapsnamen in PascalCase met `[JsonPropertyName]` voor JSON in camelCase.
-
3
Kies de doel-C#-versie
C# 10+ voor records en bestandsgebonden naamruimten, C# 8 voor nullbare referentietypen of een oudere versie voor maximale compatibiliteit.
-
4
Kopieer de klassen
Eén hoofdklasse plus geneste klassen voor elke objectvorm, alles in één bestand dat je direct in je project kunt opnemen.
Voorbeelduitvoer
Voor de invoer:
{ "firstName": "Alice", "age": 30, "emails": ["a@a.com"], "address": { "city": "Madrid" } }
Uitvoer van System.Text.Json (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!;
}
Typetoewijzing
| JSON | C#-type |
|---|---|
| tekenreeks | string |
| geheel getal | int (of long voor > int.MaxValue) |
| getal (decimaal) | double (of decimal indien gekozen) |
| booleaans | bool |
| null | object? (of samengevoegd met een naastgelegen veld) |
| ISO-8601-datum | DateTime (of DateOnly) |
| tekenreeks in GUID-vorm | Guid |
| array van tekenreeksen | List<string> |
| object | Geneste klasse |
Attribuutopties
- System.Text.Json (
[JsonPropertyName("foo")]), aanbevolen voor .NET 6+ en nieuwe projecten. - Newtonsoft.Json (
[JsonProperty("foo")]), voor legacy-projecten of wanneer je functies nodig hebt die specifiek zijn voor Newtonsoft. - Geen, de eigenschapsnamen komen exact overeen met de JSON-sleutels (werkt alleen als de JSON-sleutels al in PascalCase staan).
Veelvoorkomende fouten
intgebruiken voor een veld dat kan overlopen. Als je JSON waarden bevat die groter zijn danint.MaxValue, gebruik danlong. De generator schakelt automatisch op wanneer hij grote waarden ziet.[JsonIgnore]vergeten voor berekende eigenschappen. Als je hulp-eigenschappen aan de gegenereerde klasse toevoegt, voorzie ze dan van[JsonIgnore], anders worden ze bij het serialiseren mee weggeschreven.- Cultuuronafhankelijke parsing vergeten.
decimal-velden horen te worden gedeserialiseerd metCultureInfo.InvariantCulture; System.Text.Json doet dit standaard, Newtonsoft via globale instellingen. - De generator vertrouwen op basis van één voorbeeld. Nullbaarheid en de typen van array-elementen worden afgeleid uit wat de generator ziet. Controleer nullbare annotaties altijd tegen het werkelijke gedrag van je API.
Veelgestelde vragen
Gebruik voor nieuwe projecten op .NET 6+ System.Text.Json, het is sneller, ingebouwd en ondersteunt nu vrijwel elke functie die Newtonsoft heeft. Gebruik Newtonsoft voor legacy-projecten of wanneer je specifieke functies nodig hebt (aangepaste contract resolvers, JObject, dynamische verwerking).
Records zijn idiomatisch voor onveranderlijke DTO’s in C# 10+. Ze bieden gelijkheid op waarde en een beknopte syntaxis. Klassen zijn beter wanneer je mutatie of compatibiliteit met oudere code nodig hebt. De tool laat je zelf kiezen.
Als je project nullbare referentietypen gebruikt (C# 8+), worden velden die in een voorbeeld als null zijn waargenomen string?, int?, enzovoort. Zonder nullbare referentietypen wordt nullbaarheid alleen aangegeven voor waardetypen (bijvoorbeeld int?).
Gemengde arrays met verschillende objectvormen zijn niet rechtstreeks te representeren in sterk getypeerd C#. De tool leidt een gemeenschappelijke basisklasse af of gebruikt (als terugval) object; voor gemengde arrays kun je de JSON meestal beter opnieuw ontwerpen.
Gerelateerde tools
ASCII-tabelreferentie
Volledige ASCII-tabel van 0 tot 127 met decimale, hexadecimale, octale en binaire waarden en HTML-numerieke referentienotatie, inclusief control codes zoals NUL, LF en DEL.
HTML-tekenreferentie
Een doorzoekbare lijst met HTML-entiteiten, hun benoemde en numerieke codes, plus kopiëren met één klik voor speciale tekens en symbolen.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
E-mailvalidator
Valideer een e-mailadres: RFC 5322-syntaxcontrole, live MX-record-zoekopdracht, plus details over lokaal deel, domein en lengte. Er wordt geen e-mail verstuurd.
EditorConfig-generator
Genereer een .editorconfig-bestand met uw regels voor inspringstijl en -grootte, regeleinde, tekenset en witruimte voor consistente opmaak in alle IDE's en editors.
HTML-opmaker
Formatteer HTML lokaal in de browser met twee of vier spaties inspringing. HTML wordt niet geüpload of gevalideerd.
Tool beschikbaar in andere talen
- Từ JSON đến lớp C# [VI]
- JSON zu C# Klasse [DE]
- JSON para Classe C# [PT]
- JSON을 C# 클래스로 [KO]
- JSON ถึงคลาสใน C# [TH]
- تحويل JSON إلى فئة C# [AR]
- JSON till C#-klass [SV]
- JSON vers classe C# [FR]
- JSON ke Kelas C# [ID]
- JSONからC#クラスへ [JA]
- JSON na klasę C# [PL]
- JSON a Clase C# [ES]
- JSON to C# Class [EN]
- JSON in classe C# [IT]
- JSON в класс C# [RU]
- JSON'ten C# Sınıfına [TR]
- 从 JSON 到 C# 类 [ZH]