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
Webpack-konfigurationsgenerator
Skapa en webpack.config.js för webpack 5 från ett kort formulär: ange entry, output-mapp och mode, och slå sedan på TypeScript, Babel, en CSS-loader, HtmlWebpackPlugin och en dev-server.
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.
Generator för platshållarbilder
Skapa en bild på 1–4000 px med egna färger och text, ladda ned PNG eller kopiera webbadress och HTML.
Slug-generator
Omvandla valfri titel eller fras till en URL-säker slug. Gemener, bindestrecksseparerad, accentfri, valfri stoppord, Unicode-medveten.
SQL till NoSQL
Gör om en enda SQL-SELECT-sats till en MongoDB-find()-fråga. Mappar kolumner, WHERE (=, >, <, >=, <=, !=), AND/OR, ORDER BY och LIMIT. Ingen JOIN, GROUP BY eller aggregering.
SVG-blobgenerator
Generera organiska, slumpmässiga SVG-blobformer med justerbar komplexitet, kontrast och seed. Kopiera SVG-pathen för bakgrunder, hero-sektioner och avatarmasker.
Verktyget finns på andra språk
- JSON na klasę C# [PL]
- 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 naar C#-klasse [NL]
- 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]