DT Dev Tools

Konwerter JSON na C# — Generator klas

Konwertuj JSON na klasy C# online. Generuje modele z atrybutami System.Text.Json lub Newtonsoft.Json, typy nullable i List<T>. Za darmo, prywatnie w przeglądarce.

🔒 Działa całkowicie w Twojej przeglądarce — nic nie jest przesyłane

Reklama

Zamień JSON na klasy modelu C#

Ten konwerter JSON na C# odczytuje przykład JSON i generuje silnie typowane klasy C# odpowiadające jego strukturze. Każdy obiekt staje się klasą public partial class, każda właściwość dostaje nazwę w PascalCase wraz z atrybutem serializatora, który mapuje ją z powrotem na oryginalny klucz JSON, a zagnieżdżone obiekty stają się własnymi klasami nazwanymi od właściwości, która je przechowuje. Tablice zamieniają się w List<T> lub T[], daty ISO stają się typem DateTimeOffset, a wartości, które czasem nie występują lub mają wartość null, są generowane jako typy nullable — dzięki temu Twój kod kompiluje się z prawdziwymi danymi, a nie z wyidealizowanym przykładem.

Pod spodem działa quicktype — dojrzały silnik wnioskowania typów, który łączy wszystkie elementy tablicy, zanim wybierze typ. Lista zamówień, w której tylko część zamówień ma kupon, nadal da jedną klasę Order z opcjonalną właściwością Coupon, a nie klasę pasującą wyłącznie do pierwszego elementu.

System.Text.Json czy Newtonsoft

Nowoczesne projekty .NET zwykle korzystają z System.Text.Json, który jest tu domyślny: właściwości są oznaczane atrybutem [JsonPropertyName], a wynik zawiera metodę fabrykującą FromJson, metodę rozszerzającą ToJson oraz ustawienia konwerterów dla dat ISO. Jeśli Twoja baza kodu nadal używa Json.NET, przełącz serializator na Newtonsoft, a otrzymasz atrybuty [JsonProperty] z tymi samymi funkcjami pomocniczymi opartymi na JsonConvert. Wybierz Classes only, gdy chcesz tylko klasy POCO do wklejenia w istniejący folder DTO, i ustaw przestrzeń nazw, aby plik od razu pasował do Twojego rozwiązania.

Wskazówki dla dokładnych typów C#

Wklej możliwie najbogatszy przykład: uwzględnij pola opcjonalne, puste i wypełnione tablice oraz więcej niż jeden element tablicy, aby wnioskowanie zobaczyło, które właściwości występują zawsze. Zmień nazwę klasy głównej z Root na coś sensownego, np. OrderResponse, przed pobraniem — nazwa pliku ją odzwierciedla. Po wklejeniu kodu do Visual Studio lub Rider sprawdź typy, których przykład nie może ujawnić: identyfikator całkowity, który może przekroczyć long, ciąg znaków będący tak naprawdę enumem albo kwoty pieniężne, które zasługują na decimal. Wszystko działa lokalnie, więc podczas pracy możesz bezpiecznie używać odpowiedzi z produkcji.

Jak używać

  1. Wklej JSONWklej obiekt lub tablicę JSON albo kliknij Load sample, aby wypróbować narzędzie.
  2. Ustaw opcjeWybierz nazwę klasy głównej, przestrzeń nazw, serializator i typ kolekcji.
  3. Skopiuj klasySkopiuj wygenerowany kod C# lub pobierz go jako plik .cs do swojego projektu.

Najczęściej zadawane pytania

Czy obsługuje System.Text.Json i Newtonsoft.Json?
Tak. Wybierz serializator, a generator doda odpowiednie atrybuty [JsonPropertyName] lub [JsonProperty] oraz konwertery pomocnicze dla tej biblioteki.
Czy mogę dostać zwykłe klasy bez funkcji pomocniczych serializatora?
Tak. Zaznacz Classes only, aby otrzymać same klasy modelu — to wygodne w przypadku DTO, rekordów, które zamierzasz edytować, lub projektów z własną konfiguracją JSON.
Jak typowane są daty, liczby dziesiętne i wartości null?
Ciągi ISO 8601 stają się typem DateTimeOffset, liczby z częścią ułamkową — typem double, a pola, których brakuje lub które mają wartość null w niektórych przykładach, stają się typami nullable.
Czy mój JSON jest gdzieś przesyłany?
Nie. Silnik quicktype działa w całości w Twojej przeglądarce, więc odpowiedzi API i sekrety nigdy nie opuszczają Twojego urządzenia.
Reklama