DT Dev Tools

JSON till C# — Generera klasser

Konvertera JSON till C#-klasser online med System.Text.Json- eller Newtonsoft.Json-attribut, nullbara typer och List<T>. Gratis och privat i webbläsaren.

🔒 Körs helt i din webbläsare — ingenting laddas upp

Annons

Förvandla JSON till C#-modellklasser

Den här JSON till C#-konverteraren läser ett JSON-exempel och genererar starkt typade C#-klasser som matchar dess form. Varje objekt blir en public partial class, varje egenskap får ett PascalCase-namn med ett serialiseringsattribut som kopplar tillbaka till den ursprungliga JSON-nyckeln, och nästlade objekt blir egna klasser uppkallade efter egenskapen som håller dem. Arrayer blir List<T> eller T[], ISO-datum blir DateTimeOffset, och värden som ibland saknas eller är null genereras som nullbara typer, så att din kod kompilerar mot verkliga data och inte mot en idealiserad version.

Under huven använder verktyget quicktype, en mogen motor för typinferens som slår ihop alla element i en array innan den bestämmer typen. En lista med ordrar där bara vissa ordrar har en kupong ger därför fortfarande en enda Order-klass med en valfri Coupon-egenskap, i stället för en klass som bara passar det första elementet.

System.Text.Json eller Newtonsoft

Moderna .NET-projekt använder oftast System.Text.Json, som är standard här: egenskaperna förses med [JsonPropertyName] och resultatet innehåller en FromJson-fabriksmetod, en ToJson-tilläggsmetod och konverterarinställningar för ISO-datum. Om din kodbas fortfarande använder Json.NET byter du serialiserare till Newtonsoft och får [JsonProperty]-attribut med samma hjälpfunktioner byggda på JsonConvert. Välj Classes only när du bara vill ha POCO-klasserna att klistra in i en befintlig DTO-mapp, och ange namnrymden så att filen passar direkt i din solution.

Tips för korrekta C#-typer

Klistra in det rikaste exemplet du hittar: ta med valfria fält, tomma och fyllda arrayer samt fler än ett arrayelement, så att inferensen ser vilka egenskaper som alltid finns. Byt namn på rotklassen från Root till något meningsfullt som OrderResponse innan du laddar ner — filnamnet följer med. När du har klistrat in koden i Visual Studio eller Rider bör du granska typer som exemplet inte kan avslöja: ett heltals-ID som kan överstiga long, en sträng som egentligen är en enum eller penningvärden som förtjänar decimal. Allt körs lokalt, så det är säkert att använda svar från produktion medan du arbetar.

Hur man använder

  1. Klistra in JSONKlistra in ett JSON-objekt eller en array, eller klicka på Load sample för att prova.
  2. Ange alternativVälj rotklassens namn, namnrymd, serialiserare och samlingstyp.
  3. Kopiera klassernaKopiera den genererade C#-koden eller ladda ner den som en .cs-fil till ditt projekt.

Vanliga frågor

Stöds både System.Text.Json och Newtonsoft.Json?
Ja. Välj serialiserare så genererar verktyget motsvarande [JsonPropertyName]- eller [JsonProperty]-attribut samt konverterarhjälp för det biblioteket.
Kan jag få vanliga klasser utan serialiserarhjälp?
Ja. Markera Classes only så får du bara modellklasserna, vilket passar bra för DTO:er, records som du tänker redigera eller projekt med egen JSON-konfiguration.
Hur typas datum, decimaltal och null-värden?
ISO 8601-strängar blir DateTimeOffset, tal med decimaler blir double, och fält som saknas eller är null i vissa exempel blir nullbara.
Laddas min JSON upp någonstans?
Nej. Quicktype-motorn körs helt i din webbläsare, så API-svar och hemligheter lämnar aldrig din enhet.
Annons