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
Webpack-configuratiegenerator
Maak een webpack.config.js voor webpack 5 vanuit een kort formulier: stel entry, uitvoermap en mode in en zet TypeScript, Babel, een CSS-loader, HtmlWebpackPlugin en een dev-server aan.
Telefoonnummers controleren
Controleer de structuur van telefoonnummers per land en bekijk regio, type en E.164-, internationale, nationale en RFC 3966-notatie.
SVG-golfgenerator
Genereer een vloeiende SVG-golfscheiding voor headers en footers met instelbare amplitude, frequentie, kleur en positie boven of onder. Kopieer de SVG-code.
Decimaal naar hexadecimaal converter
Voer een decimaal geheel getal in en ontvang direct de hexadecimale waarde, inclusief negatieve waarden als 64-bits tweecomplement.
JSON-editor online
Bewerk JSON lokaal in de browser, bekijk de opgemaakte structuur, formatteer of minimaliseer tekst, sorteer sleutels en download een JSON-bestand.
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.
Tool beschikbaar in andere talen
- JSON na klasę C# [PL]
- JSON till C#-klass [SV]
- JSONからC#クラスへ [JA]
- JSON ถึงคลาสใน C# [TH]
- Từ JSON đến lớp C# [VI]
- JSON zu C# Klasse [DE]
- JSON을 C# 클래스로 [KO]
- JSON para Classe C# [PT]
- JSON a Clase C# [ES]
- تحويل JSON إلى فئة C# [AR]
- JSON ke Kelas C# [ID]
- JSON vers classe C# [FR]
- JSON to C# Class [EN]
- JSON in classe C# [IT]
- JSON в класс C# [RU]
- JSON'ten C# Sınıfına [TR]
- 从 JSON 到 C# 类 [ZH]