Wklej Javę po lewej i kliknij "Convert" — zamienimy to na JSONWklej kod Javy

Co robi to narzędzie

Masz rekord Javy albo klasyczne POJO i potrzebujesz do tego payloadu JSON — na request body, przykład w OpenAPI albo fixture do testów. Wklej klasę plus wywołanie konstruktora (albo var order = new Order(...) jak jedziesz na Java 10+) i dostaniesz JSON w takiej formie, w jakiej zserializowałby to Jackson albo Gson — bez instancjowania czegokolwiek ręcznie.

Narzędzie odwzorowuje realne zachowanie serializera, nie robi zwykłego find-and-replace. BigDecimal staje się liczbą JSON bez wrappera BigDecimal(...), OffsetDateTime / LocalDateTime / Instant wychodzą jako stringi ISO-8601 zgodnie z RFC 8259, UUID to standardowy hex 8-4-4-4-12, boolean zostaje boolean'em, a kolekcje (List, Set, tablice) spłaszczają się do tablic JSON. Map<String, V> zamienia się w obiekt JSON z wpisami z mapy jako kluczami.

Adnotacje Jacksona są honorowane: @JsonProperty("x") zmienia nazwę klucza, @JsonIgnore wycina pole, a @JsonInclude(Include.NON_NULL) ucina nulle. Zagnieżdżone klasy — klasyczny Address w Order — rozwijają się w miejscu. Wklej cały plik z kilkoma klasami; każda instancja top-level wychodzi jako osobny wpis. Pełna referencja adnotacji w dokumentacji jackson-annotations.

Jak tego używać

Trzy kroki. Działa tak samo, czy wklejasz jednolinijkowy rekord, czy cały plik z modelem.

1

Wklej swoją Javę (albo odpal przykład)

Wrzuć klasę plus wywołanie konstruktora do edytora po lewej. POJO z getterami/setterami, rekord, klasa z Lombokiem @Data albo kilka klas naraz — wszystko śmiga. Kliknij Load Sample, jeśli chcesz sensowny punkt startowy.

Nie musisz wywalać deklaracji package, importów ani modyfikatorów public/private. Zostaw standardową składnię Javy tak jak jest. Adnotacje Jacksona, adnotacje walidacyjne i dekoratory Lomboka — wszystko jest akceptowane.

2

Kliknij Convert

Kliknij zielony przycisk Convert. Narzędzie czyta klasę, rozwiązuje argumenty konstruktora, stosuje ewentualne adnotacje Jacksona (rename/ignore) i produkuje wcięty JSON.

3

Skopiuj JSON

Panel po prawej pokaże JSON gotowy do request'u Spring Boot, fixture'a w JUnit albo przykładu Swaggera. Kopiuj gdzie potrzebujesz.

Kiedy to realnie ratuje dupę

Próbki requestów Spring Boot

Wklej DTO spod <code>@RequestBody</code> i wywołanie konstruktora, żeby dostać JSON body, które odpalisz w Postmanie, curl'u albo HTTPie bez podnoszenia aplikacji.

Fixture'y testów JUnit

Przerób obiekt, który budujesz w unit teście, na samodzielny plik JSON do testów integracyjnych, stubów WireMock albo danych seed'owych w Testcontainers.

Przykłady OpenAPI / Swagger

Użyj prawdziwej klasy modelu, żeby wygenerować blok <code>example</code> do twojego OpenAPI — dzięki temu przykład nigdy się nie rozjedzie z realnym POJO.

Payloady Kafki i messagingu

Zamień rekord reprezentujący wiadomość z Kafki na JSON do testów producera, sample data albo dokumentacji.

Częste pytania

Respektuje adnotacje Jacksona?

Tak. @JsonProperty zmienia nazwy pól, @JsonIgnore je usuwa, @JsonInclude(Include.NON_NULL) ucina nulle, a @JsonFormat steruje formatowaniem dat. Pełna lista w referencji jackson-annotations.

Jak są obsługiwane BigDecimal, LocalDateTime i UUID?

BigDecimal leci jako liczba JSON. LocalDateTime, OffsetDateTime i Instant wychodzą jako stringi ISO-8601. UUID to standardowy hex 8-4-4-4-12. LocalDate to YYYY-MM-DD. Pokrywa się z domyślnym zachowaniem JavaTimeModule w Jacksonie.

Ogarnia rekordy i typy sealed?

Tak. record'y z Javy 14+ serializują się przez swoje kanoniczne komponenty. Typy sealed i ich dopuszczone subtypy spłaszczają się do kształtu danych pod spodem. Kontekst w JEP records OpenJDK.

A klasy z Lombokiem @Data / @Builder?

Adnotacje Lomboka są rozpoznawane — wygenerowane gettery, settery i buildery są traktowane jak zwykłe akcesory. Narzędzie patrzy na zadeklarowane pola plus wywołanie konstruktora, które wkleiłeś, i z tego buduje JSON.

Mogę wkleić cały plik z kilkoma klasami?

Tak. Każda klasa top-level, dla której w pastowanym kodzie jest instancja, ląduje w JSON-ie jako osobny wpis. Klasy wewnętrzne / zagnieżdżone static rozwijają się inline w miejscu użycia.

Czy mój kod jest gdzieś zapisywany?

Kod leci do backendu tylko na czas konwersji — nic nie jest zapisywane ani logowane. Ale jak zawsze z narzędziami online: zanim wkleisz coś naprawdę wrażliwego, rzuć okiem.

Inne narzędzia, które mogą się przydać

Java na JSON to tylko kawałek układanki. Do pary z nim dobrze grają: