Skip to main content
CheckTown
Konwertery

JSON do C#: generuj klasy .NET z odpowiedzi API

Opublikowano 5 min czytania
W tym artykule

Dlaczego generować klasy C# z JSON?

Podczas pracy z API REST w .NET lub Unity potrzebujesz silnie typowanych klas C# do deserializacji odpowiedzi JSON. Ręczne pisanie tych klas jest żmudne i podatne na błędy, zwłaszcza dla głęboko zagnieżdżonych payloadów API. Generator JSON do C# analizuje strukturę JSON i automatycznie tworzy gotowe do użycia definicje klas.

Jest to szczególnie wartościowe podczas szybkiego prototypowania. Wklejasz przykładową odpowiedź API, otrzymujesz perfekcyjnie ustrukturyzowane klasy C# i natychmiast zaczynasz pracować z typowanymi danymi zamiast obiektów dynamicznych.

Tryby wyjścia i opcje serializacji

Generator obsługuje wiele formatów wyjściowych, aby dopasować się do stylu kodowania i wersji .NET twojego projektu. Każdy tryb produkuje idiomatyczny C#, który kompiluje się bez modyfikacji.

  • Class vs Record — tradycyjne mutowalne klasy dla starszych projektów .NET lub rekordy C# 9+ dla niezmiennych obiektów transferu danych z wbudowaną równością wartości
  • System.Text.Json — nowoczesny, wysokowydajny serializator wbudowany w .NET Core 3.1+, który używa atrybutów [JsonPropertyName]
  • Newtonsoft.Json — szeroko stosowana biblioteka Json.NET z atrybutami [JsonProperty], wciąż dominująca w starszym .NET Framework i projektach Unity

Wypróbuj za darmo — bez rejestracji

Konwertuj JSON na C# →

Konwencje nazewnictwa C# i adnotacje

C# przestrzega ścisłych konwencji nazewnictwa, które różnią się od typowego camelCase lub snake_case JSON. Generator automatycznie stosuje te transformacje, zachowując oryginalne nazwy właściwości JSON poprzez atrybuty serializacji.

  • Właściwości PascalCase — wszystkie wygenerowane nazwy właściwości są konwertowane do PascalCase (np. user_name staje się UserName) zgodnie z wytycznymi nazewnictwa .NET Microsoftu
  • Wzorce adnotacji — każda właściwość zawiera odpowiedni atrybut serializacji ([JsonPropertyName] lub [JsonProperty]) mapujący właściwość PascalCase na oryginalną nazwę klucza JSON
  • Wnioskowanie typów — generator wnioskuje typy C# z wartości JSON: ciągi znaków stają się string, liczby stają się int lub double, wartości logiczne stają się bool

Często zadawane pytania

Jak generator obsługuje nullable typy referencyjne?

Gdy wartość JSON jest null, generator tworzy nullable typ referencyjny (string? zamiast string). To jest zgodne z konwencjami nullable typów referencyjnych C# 8+ i pomaga wykryć potencjalne wyjątki null reference podczas kompilacji.

Czy powinienem używać List<T> czy tablic dla tablic JSON?

Generator domyślnie używa List<T>, ponieważ oferuje bogatszą funkcjonalność (Add, Remove, Contains) i jest najpopularniejszym typem kolekcji w bazach kodu C#. Możesz ręcznie zmienić wygenerowany typ w razie potrzeby.

Czy mogę generować rekordy zamiast klas?

Tak. Tryb record generuje typy rekordów C# 9+ z właściwościami init-only. Rekordy są idealne dla obiektów transferu danych, ponieważ zapewniają niezmienność, równość opartą na wartościach i zwięzłą składnię.

Powiązane narzędzia