Przejdź do treści
100% lokalnie

JSON do klasy C#

Konwertuj przykład JSON na gotowe klasy C#.

Wejście
Wynik

JSON do klasy C#

Wklej obiekt JSON lub tablicę obiektów JSON, a to narzędzie wnioskuje strukturę i generuje odpowiadające klasy C#. Zostało zbudowane do wykonania zwykłego zadania zamiany odpowiedzi API, pliku konfiguracyjnego lub przykładowego ładunku na silnie wpisane modele bez ich ręcznego pisania.

Opcje kontrolują wygląd generowanego kodu. Wybierz atrybuty dla System.Text.Json ([JsonPropertyName]), Newtonsoft.Json ([JsonProperty]) lub brak — atrybuty są dodawane automatycznie, gdy zmiana nazwy na PascalCase zmienia nazwę właściwości, więc oryginalny klucz JSON nigdy się nie zgubi. Wybierz właściwości lub pola, przełącz nullable reference types, generuj zapis zamiast klasy i wybierz List<T> lub T[] dla tablic. Obiekty zagnieżdżone stają się własnymi klasami nazwanymi po właściwości, która je zawiera, i deklaracja przestrzeni nazw zawija wszystko, jeśli ją podasz.

Narzędzie łączy kształty wszystkich elementów po wklejeniu tablicy, więc klucz obecny tylko na niektórych elementach staje się opcjonalną, nullable'ną właściwością zamiast po cichu znikać. Liczby pozostają liczbami całkowitymi (int, rozszerzając się na long dla większych wartości), chyba że punkt dziesiętny wymusza double, a wartość, która jest zawsze null, staje się obiektem nullable. Nazwy klas i właściwości są czyszczone i automatycznie deduplikowane, więc nieprawidłowe lub powtarzające się klucze JSON nigdy nie da nieprawidłowy C#.

Wszystko działa lokalnie w Twojej przeglądarce — Twój JSON nigdy nie jest przesyłany ani wysyłany na serwer, co ma znaczenie, gdy przykład pochodzi z prywatnego API lub zawiera rzeczywiste dane klientów. Skopiuj wygenerowane klasy, pobierz je jako plik .txt lub wyślij wynik z powrotem na wejście, aby go dalej ulepszyć.

Częste pytania

Jak to decyduje między int, long i double?
Liczby całkowite stają się int lub long, gdy przekraczają zakres 32-bitowy. Każda liczba z przecinkiem dziesiętnym lub która różni się od liczby całkowitej gdzie indziej w tablicy staje się double.
Co się stanie z właściwością, która brakuje niektórym elementom tablicy?
Jest generowana jako nullable'na właściwość. Z włączonymi nullable reference types dodaje to "?"; to samo dotyczy wartości, która jest zawsze null.
Czy może to zachować oryginalny klucz JSON, gdy zmienia nazwę właściwości?
Tak. Za każdym razem, gdy zmiana nazwy na PascalCase lub czyszczenie zmienia nazwę właściwości, oryginalny klucz jest zachowywany w atrybucie [JsonPropertyName] lub [JsonProperty], w zależności od wybranego stylu atrybutu.
Czy to generuje klasy zagnieżdżone dla zagnieżdżonych obiektów?
Tak. Każdy zagnieżdżony obiekt otrzymuje własną klasę nazwaną od właściwości, która go zawiera, a tablica obiektów generuje klasę nazwaną od formy liczby pojedynczej tej właściwości.
Czy mój JSON jest gdzieś przesyłany?
Nie. Konwersja odbywa się całkowicie w przeglądarce — Twój JSON nigdy nie opuszcza Twoje urządzenie.