Konwerter Java na JSON
Wklej Java POJO, rekord albo klasę. Dostajesz czysty JSON.
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.
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.
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.
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ą: