JSON till C#-klass
Klistra in ett JSON-exempel och få C#-POCO-klasser redo att klistras in i en .cs-fil. Verktyget väljer lämpliga typer, hanterar nästlade objekt med ytterligare klassdefinitioner, stöder nullbara referenstyper och genererar antingen System.Text.Json- eller Newtonsoft.Json-attribut beroende på ditt projekt.
Så konverterar du JSON till C#
-
1
Klistra in JSON
Ett enda exempel räcker. Flera exempel förbättrar inferensen av nullbarhet och array-elementens typer.
-
2
Välj stil
System.Text.Json (.NET 6+) eller Newtonsoft.Json (äldre). Egenskapsnamn i PascalCase med `[JsonPropertyName]` för JSON i camelCase.
-
3
Välj mål-C#-version
C# 10+ för poster och filomfångade namnrymder, C# 8 för nullbara referenstyper eller äldre versioner för maximal kompatibilitet.
-
4
Kopiera klasserna
En rotklass plus nästlade klasser för varje objektform, allt i en enda fil redo att läggas in i ditt projekt.
Exempel på utdata
För indatan:
{ "firstName": "Alice", "age": 30, "emails": ["a@a.com"], "address": { "city": "Madrid" } }
System.Text.Json-utdata (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!;
}
Typmappning
| JSON | C#-typ |
|---|---|
| sträng | string |
| heltal | int (eller long för > int.MaxValue) |
| tal (decimal) | double (eller decimal om valt) |
| booleskt värde | bool |
| null | object? (eller sammanslaget med angränsande fält) |
| ISO-8601-datum | DateTime (eller DateOnly) |
| sträng i GUID-form | Guid |
| array av strängar | List<string> |
| objekt | Nästlad klass |
Attributalternativ
- System.Text.Json (
[JsonPropertyName("foo")]), att föredra för .NET 6+ och nya projekt. - Newtonsoft.Json (
[JsonProperty("foo")]), för äldre projekt eller när du behöver funktioner som är specifika för Newtonsoft. - Inget, egenskapsnamnen matchar JSON-nycklarna exakt (fungerar bara om JSON-nycklarna redan är i PascalCase).
Vanliga misstag
- Att använda
intför ett fält som kan spilla över. Om ditt JSON har värden som överstigerint.MaxValue, användlong. Generatorn uppgraderar automatiskt när den ser stora värden. - Att glömma
[JsonIgnore]för beräknade egenskaper. Om du lägger till hjälpegenskaper i den genererade klassen, dekorera dem med[JsonIgnore], annars serialiseras de vid utmatning. - Att glömma kulturoberoende parsning.
decimal-fält bör deserialiseras medCultureInfo.InvariantCulture; System.Text.Json gör detta som standard, Newtonsoft med globala inställningar. - Att lita på generatorn utifrån ett enda exempel. Nullbarhet och array-elementens typer gissas utifrån det generatorn ser. Kontrollera alltid nullbara annoteringar mot ditt API:s faktiska beteende.
Vanliga frågor
För nya projekt på .NET 6+ använd System.Text.Json, den är snabbare, inbyggd och stöder nu nästan alla funktioner som Newtonsoft har. Använd Newtonsoft för äldre projekt eller när du behöver dess specifika funktioner (anpassade contract resolvers, JObject, dynamisk hantering).
Poster (records) är idiomatiska för oföränderliga DTO:er i C# 10+. De ger likhet baserad på värde och koncis syntax. Klasser är bättre när du behöver föränderlighet eller kompatibilitet med äldre kod. Verktyget låter dig välja endera.
Om ditt projekt använder nullbara referenstyper (C# 8+) blir fält som observerats som null i något exempel string?, int? och så vidare. Utan nullbara referenstyper signaleras nullbarhet endast för värdetyper (t.ex. int?).
Blandade arrayer med olika objektformer går inte att representera direkt i starkt typat C#. Verktyget härleder en gemensam basklass eller (som reserv) object; för blandade arrayer vill du oftast göra om JSON-strukturen.
Relaterade verktyg
ASCII-tabellreferens
Full ASCII-tabell från 0 till 127 med decimal-, hex-, oktal- och binärvärden samt notation för numeriska HTML-referenser, inklusive NUL, LF och DEL.
HTML-teckenreferens
En sökbar lista över HTML-entiteter med deras namngivna och numeriska koder samt kopiering med ett klick för specialtecken och symboler.
Referens för kortkommandon
Sök dokumenterade standardkommandon för VS Code, Chrome och Bash med GNU Readline i macOS, Windows och Linux.
HTML-formaterare
Formatera HTML lokalt i webbläsaren med indrag på två eller fyra blanksteg. HTML laddas inte upp eller valideras.
E-postvalidator
Validera en e-postadress: RFC 5322-syntaxkontroll, live-slagning av MX-poster samt detaljer om lokal del, domän och längd. Ingen e-post skickas.
Slumpgenerator för bokstäver
Generera slumpade A-Z-bokstäver. Välj antal, versaler, gemener eller blandat läge och använd resultatet för spel, uppgifter eller klassrumsaktiviteter.
Verktyget finns på andra språk
- Từ JSON đến lớp C# [VI]
- تحويل JSON إلى فئة C# [AR]
- JSON vers classe C# [FR]
- JSON ke Kelas C# [ID]
- JSON zu C# Klasse [DE]
- JSON을 C# 클래스로 [KO]
- JSON naar C#-klasse [NL]
- JSON ถึงคลาสใน C# [TH]
- JSON na klasę C# [PL]
- JSONからC#クラスへ [JA]
- JSON para Classe C# [PT]
- 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]