Przejdź do treści

JSON na klasę Java

Zamień próbkę JSON na klasy Java z automatycznie dedukowanymi typami zagnieżdżonymi i listami generycznymi.

Wejście
Wynik

JSON na klasę Java

Wklej próbkę JSON, a to narzędzie wygeneruje klasy Java potrzebne do jej reprezentacji, wnioskując typy pól, typy zagnieżdżonych obiektów i typy elementów list generycznych bezpośrednio z podanych wartości. Jest przeznaczony dla deweloperów backendu, którzy otrzymują odpowiedź API lub plik konfiguracyjny i potrzebują typowanego modelu do deserializacji bez ręcznego pisania każdego pola.

Wybierz sposób adnotacji pól: bez adnotacji, z Jackson @JsonProperty lub z Gson @SerializedName, każdy niosący oryginalny klucz JSON, aby serializacja nadal pasowała po zmianie nazwy pola na camelCase. Wyłącz gettery i settery dla zwykłej klasy z polami publicznych, lub zamień je na Lombok @Data lub Java record, gdzie komponenty zastępują pola i akcesory. Typy opakowujące (Integer, Boolean, Double) mogą być wymuszane wszędzie zamiast typów pierwotnych; narzędzie zawsze używa opakowania tam, gdzie wartość jest naprawdę opcjonalna, ponieważ typ pierwotny nigdy nie może zawierać wartości null. Deklaracja pakietu jest dodawana, gdy jest dostarczona, a obiekty zagnieżdżone są renderowane jako statyczne klasy zagnieżdżone w jednym pliku lub jako odseparowane klasy najwyższego poziomu.

Kiedy ten sam kształt pojawia się więcej niż raz — powtórzone obiekty w tablicy lub dwa sąsiadujące pola z identyczną strukturą — narzędzie ponownie używa jednej wygenerowanej klasy zamiast duplikowania. Pola obserwowane z różnymi kształtami w tablicy są łączone w jedną klasę, z polami nieobecnymi w niektórych elementach oznaczonymi jako opcjonalne. Liczby pozostają jako int tam, gdzie mieszczą się w 32-bitowym zakresie i poszerzają się na long lub double w razie potrzeby; klucz JSON, który nie może być identyfikatorem Java, takim jak emoji, powraca do bezpiecznej wygenerowanej nazwy.

Wszystko działa lokalnie w Twojej przeglądarce — próbka JSON nigdy nie opuszcza przeglądarki i nie jest transmitowana na serwer. Skopiuj wygenerowane klasy do swojego projektu, pobierz je jako plik .txt lub prześlij wynik z powrotem do wejścia i uruchom inne narzędzie.

Częste pytania

Czy obsługuje zagnieżdżone obiekty i tablice?
Tak. Obiekty zagnieżdżone staną się własnymi klasami (zagnieżdżonymi lub odseparowanymi, w zależności od opcji układu klasy) i tablice staną się generyczną listą java.util.List wnioskowanego typu elementu.
Co się stanie z polem, które brakuje w niektórych przykładowych obiektach?
Jest oznaczony jako opcjonalny i, jeśli jest typem pierwotnym, jest uaktualniony do jego typu opakowania (Integer, Boolean, Double), dzięki czemu pole może zgodnie z prawem zawierać null.
Czy mogę zamiast ręcznych getterów i setterów użyć Lombok lub Java records?
Tak. Włącz Lombok @Data dla klasy adnotowanej @Data i prywatnych pól, lub Użyj Java record do wygenerowania rekordu z polami jako komponenty — oba zastępują ręcznie pisane akcesory.
Jak są wybierane nazwy pól, gdy klucz JSON nie jest prawidłowym identyfikatorem Java?
Klucz jest konwertowany na camelCase; klucz, który produkuje pustą lub nazw kolidującą z słowem kluczowym, wraca do bezpiecznej wygenerowanej nazwy, takiej jak field lub słowo kluczowe z końcowym podkreśleniem.
Czy mój JSON jest gdzieś wgrywany?
Nie. Generowanie klas przebiega całkowicie w Twojej przeglądarce — Twoja próbka JSON nigdy nie jest wysyłana na serwer.