JSON na C# Class
Generuj klasy C# z JSON, w przegladarce.
Do czego sluzy
JSON na klasy C# gotowe dla .NET
Kompatybilny z nowoczesnym .NET
Wygenerowane klasy dzialaja z System.Text.Json (.NET 5+) i Newtonsoft.Json. Gotowe dla ASP.NET Core i .NET MAUI.
W 100% prywatny
Twoj JSON jest przetwarzany w przegladarce. Nigdy nie trafia na zewnetrzne serwery. Bezpieczny dla poufnych API.
Idiomatyczny kod C#
Auto-wlasciwosci, PascalCase, poprawne typy nullable. Kod zgodny z oficjalnymi konwencjami Microsoftu.
Natychmiastowy
Generowanie klas w milisekundach. Zadnych instalacji, rejestracji ani oczekiwania.
Jak to działa
Trzy kroki, żadnych komplikacji
Wklej swoj JSON
Wklej dowolny poprawny obiekt JSON. Parser wykrywa typy, pola opcjonalne i zagniezdzone struktury.
Wygeneruj klasy C#
Klasy C# sa generowane z auto-wlasciwosciami, typami nullable dla pol opcjonalnych oraz zagniezdzonymi klasami.
Skopiuj i uzyj w projekcie
Skopiuj wygenerowany kod do Visual Studio lub VS Code. Kompatybilny z System.Text.Json i Newtonsoft.Json bez zadnych modyfikacji.
FAQ
Masz pytania?
Auto-wlasciwosci ({ get; set; }) to funkcja C# pozwalajaca deklarowac wlasciwosci bez recznego pisania pola pomocniczego. Zamiast deklarowac prywatne pole i jego jawne akcesory, wystarczy napisac public string Name { get; set; }, a kompilator automatycznie generuje pole pomocnicze. Sprawia to, ze kod jest bardziej zwiezly i czytelny.
Konwencje nazewnictwa .NET (udokumentowane w wytycznych Microsoftu) okreslaja, ze publiczne wlasciwosci powinny uzywac PascalCase (PropertyName), w odroznieniu od Java uzywajac camelCase. Jednak System.Text.Json i Newtonsoft.Json moga automatycznie mapowac miedzy PascalCase w C# a camelCase w JSON przy uzyciu JsonPropertyName lub konfiguracji serializacji.
Gdy pole jest obecne w niektorych obiektach JSON, ale nie w innych, jest wywnioskowane jako opcjonalne i generowane z typem nullable (string?, int?, bool?). Wymaga to C# 8.0 lub nowszego z wlaczonym kontekstem nullable. Typy nullable zapobiegaja wyjatkowi NullReferenceException przy dostepie do pol, ktore moga nie byc obecne w odpowiedzi JSON.
Zagniezdzone obiekty JSON sa konwertowane na oddzielne klasy C# w tym samym pliku. Kazda zagniezdzona klasa jest generowana jako regularna klasa publiczna (nie jako klasa wewnetrzna), zgodnie z konwencja C# jednej klasy na odpowiedzialnosc. Odwolania miedzy klasami sa ustanawiane poprzez typ wlasciwosci.
System.Text.Json jest dolaczony do .NET Core 3.0+ i jest zalecanym wyborem dla nowych projektow: jest szybszy i nie wymaga zewnetrznych zaleznosci. Newtonsoft.Json (Json.NET) ma wiecej funkcji i jest bardziej elastyczny, bedac preferowanym gdy potrzebujesz zlozonych niestandardowych konwerterow lub kompatybilnosci ze starszymi projektami. Klasy generowane przez to narzedzie sa kompatybilne z obiema bibliotekami bez modyfikacji.
Klasy C#, typy record, serializacja JSON w .NET i tworzenie aplikacji ASP.NET Core
C# jest glownym jezykiem ekosystemu .NET Microsoftu, szeroko uzywanyn do web API z ASP.NET Core, aplikacji desktopowych z WPF/WinForms i wieloplatformowych aplikacji z .NET MAUI. W tworzeniu REST API z ASP.NET Core modele danych (zwane rowniez DTO lub modelami widoku) to klasy C# reprezentujace tresc zadan i odpowiedzi JSON.
Wraz z C# 9.0 i .NET 5+ Microsoft wprowadzil typy record: niezmienne klasy z rownosciaoparta na wartosciach, idealne dla DTO. W odroznieniu od zwyklych klas, rekordy sa domyslnie niezmienne i wymagaja mniej kodu szablonowego. Jednak dla scenariuszy wymagajacych mutowalnych obiektow (na przyklad przy deserializacji z JSON), klasy z auto-wlasciwosciami pozostaja standardowym wyborem.
System.Text.Json, wprowadzony w .NET Core 3.0, zastepuje Newtonsoft.Json jako zalecana biblioteka serializacji JSON. Jest znacznie szybszy i ma mniejszy naklad pamieci, co jest istotne dla API o wysokiej wydajnosci. W testach wydajnosciowych System.Text.Json przewyzsza Newtonsoft pod wzgledem szybkosci serializacji i deserializacji. Convertir.ai generuje klasy kompatybilne z obiema bibliotekami, przetwarzajac wszystko w Twojej przegladarce bez wysylania danych na serwery.