UTILS.
100% w przeglądarce
💠

JSON na klasy C#

Wygeneruj klasy modelu C# z przykładu JSON dla System.Text.Json lub Newtonsoft.Json, z właściwościami PascalCase i typami wartości nullable.

wynik

O tym narzędziu

Narzędzie JSON na klasy C# konwertuje wklejony przykład JSON w klasy lub rekordy modelu C#, aby programiści .NET mogli utworzyć DTO z odpowiedzi API w kilka sekund. Parsuje JSON, rekurencyjnie wnioskuje typy C# i emituje jeden typ na obiekt: łańcuchy stają się string, łańcuchy daty i czasu ISO DateTime, liczby całkowite int lub long, inne liczby double, wartości logiczne bool, tablice List<T>, a zagnieżdżone obiekty otrzymują własne klasy PascalCase deklarowane przed rodzicami, którzy się do nich odwołują.

Całe parsowanie i generowanie kodu odbywa się lokalnie w Twojej przeglądarce za pomocą JSON.parse i czystego JavaScriptu — nic nie jest przesyłane. Właściwości są emitowane jako automatyczne właściwości PascalCase, public T Prop { get; set; }. Gdy klucz JSON różni się od nazwy właściwości PascalCase, narzędzie dodaje [JsonPropertyName("originalKey")] dla System.Text.Json lub [JsonProperty("originalKey")] dla Newtonsoft, a dołączane są tylko wymagane dyrektywy using.

Właściwości typu wartościowego, które mogą być null w dowolnym przykładzie, są oznaczane jako nullable (int?, double?, bool?, DateTime?), podczas gdy typy referencyjne, takie jak string i List, są już nullable. Przełącznik serializatora zmienia styl atrybutów i using między System.Text.Json (domyślnie) a Newtonsoft.Json; przełącznik kształtu emituje klasy (domyślnie) lub rekordy. Skopiuj kod lub pobierz go jako plik .cs.

Najczęściej zadawane pytania

Jak typy JSON są mapowane na C#?
string na string, ISO data-czas na DateTime, liczba całkowita na int (long poza zakresem int), liczba niecałkowita na double, wartość logiczna na bool, tablica na List<T>, a obiekt na nazwaną klasę lub rekord. Typy wartościowe nullable otrzymują końcowy modyfikator ?.
System.Text.Json czy Newtonsoft?
Przełącznik serializatora wybiera jeden z nich. Kontroluje atrybut używany, gdy nazwa właściwości różni się od klucza JSON — [JsonPropertyName("key")] dla System.Text.Json lub [JsonProperty("key")] dla Newtonsoft — oraz odpowiednią dyrektywę using.
Czy mogę generować rekordy zamiast klas?
Tak. Przełącznik kształtu zmienia między public class (domyślnie) a public record, zachowując te same automatyczne właściwości PascalCase i atrybuty JSON, dzięki czemu możesz wybrać styl preferowany w Twojej bazie kodu.
Czy JSON jest przetwarzany prywatnie?
Tak. Wszystko działa w Twojej przeglądarce za pomocą JSON.parse i czystego JavaScriptu; przykład nigdy nie jest przesyłany, więc wklejanie prawdziwych ładunków API jest bezpieczne.

Więcej narzędzi