Omnikit
ProgramowaniePlikiFinanseWszystkie narzędzia
Ctrl K
Narzędzia dla programistówNarzędzia do plikówKalkulatory finansoweWszystkie narzędzia
Strona głównaNarzędzia dla programistówKonwerter JSON na klasy C#
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

Konwerter JSON na klasy C#

programowanie

Zamiana próbki JSON na klasy lub rekordy C# dla System.Text.Json lub Newtonsoft.Json

Działa w przeglądarce. Wpisane dane nie są nigdzie wysyłane. Sprawdzono 16 października 2026.

Wystarczy wkleić próbkę JSON, aby otrzymać klasy lub rekordy C# z właściwościami w PascalCase i kluczem JSON w atrybucie JsonPropertyName lub JsonProperty. Liczby całkowite stają się int, powyżej 2 147 483 647 long, każda wartość dziesiętna zmienia pole na double, a wartość null lub brakująca staje się nullable, np. int?.

Ta strona została przetłumaczona maszynowo z angielskiego oryginału. Tłumaczenie nie zostało jeszcze sprawdzone przez człowieka, dlatego wiążąca jest wersja angielska. Przeczytaj angielski oryginał

Dalej:
  • JSON na TypeScript Generuj interfejsy lub typy TypeScript z przykładowego JSON
  • Formater i walidator JSON Formatowanie, walidacja, minifikacja i sortowanie JSON z dokładną pozycją błędu

Jak przekonwertować JSON na klasę C#

1

Wklej próbkę JSON, na przykład odpowiedź API, do lewego pola.

2

Klasy C# pojawiają się w trakcie pisania, po jednej na obiekt, z właściwościami w PascalCase i kluczem JSON w atrybucie przy każdej z nich.

3

Wybierz System.Text.Json lub Newtonsoft.Json oraz rekordy z init, jeśli preferowane są modele niemutowalne.

4

Kliknij Kopiuj albo Pobierz, aby zapisać Models.cs, i deserializuj do klasy głównej.

Konwerter JSON na klasy C#

C# wczytuje JSON do typowanych klas, a każda właściwość potrzebuje właściwego typu i sposobu na odnalezienie swojego klucza. Konwerter pisze takie klasy na podstawie próbki, więc długa odpowiedź API staje się kompilującym się modelem po jednym wklejeniu.

Jak dobierane są typy.

Wartość JSON Typ C#
"text" string
true / false bool
42 (tylko liczby całkowite) int lub long powyżej 32 bitów
4.5 (wystąpiła jakakolwiek część dziesiętna) double
null oraz inny typ int?, string?
tylko null lub różne rodzaje object?
[ ... ] List<...>
{ } pusty Dictionary<string, object>
{ ... } osobna klasa

Klucze i nazwy. Właściwości są w PascalCase, więc user_name staje się UserName, a avatar_url AvatarUrl. Każda właściwość niesie swój oryginalny klucz w atrybucie, ponieważ System.Text.Json domyślnie porównuje nazwy z rozróżnianiem wielkości liter; Newtonsoft dostaje zamiast tego [JsonProperty]. Właściwość, która miałaby nazwę swojej klasy, co kompilator odrzuca jako CS0542, dostaje dopisane Value.

Tablice obiektów. Wszystkie obiekty tablicy są łączone w jedną klasę, więc klucz obecny tylko w niektórych nadal się w niej znajduje, jako nullable, aby jego brak był odczytywany jako null, a nie 0 lub false. Dwa obiekty o dokładnie tych samych kluczach i typach współdzielą jedną klasę.

Opcje. Rekordy z init dają niemutowalne modele porównywane według wartości. Klasa główna nazywa się Root, chyba że zostanie nazwana inaczej. Gdy sam JSON jest tablicą lub pojedynczą wartością, komentarz podaje typ do deserializacji, np. List.

Każdy wynik sprawdzono, odczytując C# z powrotem i porównując z nim 9 próbek według reguł serializatorów. Nic, co zostanie wklejone, nie opuszcza przeglądarki.

Najczęściej zadawane pytania

Jak przekonwertować JSON na klasę C#?

Po wklejeniu próbki JSON do konwertera obok pojawiają się klasy C#, po jednej na obiekt, z atrybutem JsonPropertyName przy każdej właściwości. Należy skopiować je do projektu i odczytać JSON przez JsonSerializer.Deserialize<Root>(json) lub JsonConvert.DeserializeObject<Root>(json), gdy wybrano Newtonsoft.

Dlaczego każda właściwość ma atrybut JsonPropertyName?

System.Text.Json domyślnie porównuje nazwy właściwości z rozróżnianiem wielkości liter, więc właściwość o nazwie UserName nigdy nie otrzymałaby klucza user_name. Atrybut podaje dokładny klucz, dzięki czemu nazwy w C# pozostają w PascalCase, a JSON jest odczytywany bez opcji serializatora i polityki nazewnictwa.

Kiedy właściwość jest nullable, np. int? lub string?

Właściwość jest nullable, gdy próbka zawiera dla niej null albo gdy niektóre obiekty tablicy pomijają jej klucz. Bez znaku zapytania brakująca liczba zostałaby po cichu odczytana jako 0, a brakująca flaga jako false, więc typ nullable odróżnia brak od zera.

Co wybrać: klasy czy rekordy?

Rekordy z akcesorami init sprawdzają się przy modelach tylko do odczytu, bo ich właściwości nie mogą się zmienić po deserializacji, a dwa rekordy o tych samych wartościach są równe. Klasy z set sprawdzają się przy modelach wypełnianych lub edytowanych. Oba działają z System.Text.Json od .NET 5 oraz z Newtonsoft.Json.

Jakie typy dostają liczby w C#?

Liczby całkowite stają się int lub long, gdy wartość przekracza 2 147 483 647, a pole staje się double, gdy tylko którakolwiek wartość w próbce ma część dziesiętną. Wartości różnych rodzajów, np. liczba w jednym elemencie i tekst w innym, stają się object?, który zachowuje surową wartość JSON.

Czy mój JSON jest wysyłany?

Nie. Konwersja działa w przeglądarce bez żadnego żądania do serwera, a JSON nie jest zapisywany, więc odpowiedzi API z tokenami lub danymi osobowymi zostają na urządzeniu. Po zamknięciu karty nic nie pozostaje.

Źródła

  • Microsoft Learn, System.Text.Json: customize property namesJsonPropertyName, and case-sensitive matching by default
  • Newtonsoft.Json documentation, JsonPropertyAttribute nameJsonProperty("key") on a property
  • Microsoft Learn, .NET naming guidelinesPascalCase types and properties
  • Microsoft Learn, compiler error CS0542A member cannot have the same name as its enclosing type

Ostatnia weryfikacja: 16 października 2026.

Stawki i przepisy się zmieniają; przed oparciem się na danej liczbie należy sprawdzić źródło.

Nadal coś nie działa? Zapytaj o narzędzie Konwerter JSON na klasy C# a odpowiedzieć może każdy, kto zna odpowiedź. Konto nie jest potrzebne.

Powiązane narzędzia

Wszystkie narzędzia dla programistów
Kodowanie i dekodowanie Base64Tekst i pliki do Base64 i z powrotem, z trybem bezpiecznym dla URL i podglądem obrazówKonwerter znacznika czasu UnixZnaczniki czasu Unix na daty i daty na znaczniki czasu, w dowolnej strefie czasowejJSON na TypeScriptGeneruj interfejsy lub typy TypeScript z przykładowego JSONKonwerter CSV na JSONKonwertuj CSV na JSON i JSON na CSV, z podglądem tabeliKonwerter YAML na JSONKonwertuj YAML na JSON i JSON na YAML, z rozwiązanymi kotwicamiKoder i dekoder URLKodowanie procentowe i dekodowanie tekstu oraz adresów URL, z podglądem każdej części linkuKonwerter kolorówHEX, RGB, HSL, HWB, OKLCH i CMYK w obie strony, ze sprawdzaniem kontrastuKonwerter systemów liczbowychDwójkowy, ósemkowy, dziesiętny, szesnastkowy i dowolna podstawa do 36, dokładnie przy każdej wielkości, z kodem uzupełnień do dwóch
Czy to narzędzie było pomocne?
Omnikit

Małe zadania wykonywane w przeglądarce. Bezpłatnie, szybko i prywatnie. Pliki nigdy nie są przesyłane.

Pliki

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Programowanie

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Finanse

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
PoradnikiPytaniaO serwisieJak sprawdzamyBiblioteka prawa (beta)PrywatnośćRegulaminUjawnieniaKontaktMore: Exam practice (UGC NET Paper 1)Działa w przeglądarce. Nic nie jest przesyłane. © 2026 Omnikit (theomnikit.com)