JSON do Javy

Zamień JSON na klasy Java POJO, DTO lub modele i od razu przenieś gotowy kod do IDE. Całe generowanie odbywa się lokalnie w przeglądarce.

Powiązane Rekomendacje

Do czego służy konwerter JSON do Java?

Konwerter JSON do Java automatycznie analizuje strukturę JSON i przekształca ją w standardowe klasy Java POJO. Oszczędza ręczne pisanie package, importów, pól private oraz getterów i setterów.

To szczególnie przydatne w Spring Boot, Androidzie, MyBatis i integracji z zewnętrznymi API, gdy chcesz szybko zamienić przykładową odpowiedź na gotowy model Java. Zagnieżdżone obiekty stają się osobnymi klasami, a tablice są mapowane na `List<T>`.

Narzędzie GeekFormat obsługuje Gson, Jackson, Fastjson, Lombok, Serializable, Builder, strategie nazewnictwa pól i pobieranie ZIP. Wygenerowany kod można od razu wkleić do projektu.

Przypadki użycia

  • Zmiana przykładowych JSON-ów ze Spring Boot API na DTO i VO
  • Tworzenie JavaBean dla Androida lub klientów Java na podstawie odpowiedzi API
  • Szybkie przygotowanie modeli Jackson / Gson do integracji z zewnętrznymi usługami
  • Generowanie krótkich POJO z Lombok, by ograniczyć powtarzalny kod
  • Rozbijanie złożonych zagnieżdżonych JSON-ów na czytelne klasy Java
  • Pobranie wszystkich klas w ZIP i masowy import do IDE

Jak Używać

  1. Wklej JSON po lewej stronie, załaduj przykład albo importuj plik `.json` / `.txt`
  2. W Settings ustaw nazwę klasy głównej, package, bibliotekę adnotacji, strategię nazewnictwa oraz opcje Lombok / Serializable
  3. Poczekaj na automatyczne wygenerowanie lub kliknij Convert i sprawdź listę klas Java po prawej stronie
  4. Skopiuj wybrane klasy albo pobierz wszystko przez Download ZIP

Funkcje

  • Obsługa wielu bibliotek adnotacji: Gson, Jackson, Fastjson i Lombok
  • Uproszczenie przez Lombok: możesz włączyć `@Data`, `@Builder` i konstruktory zamiast długiego boilerplate
  • Strategie nazewnictwa pól: zachowaj oryginalne nazwy albo zmień snake_case na camelCase
  • Automatyczne klasy zagnieżdżone: zagnieżdżone obiekty JSON są zamieniane na oddzielne klasy Java
  • Tablice jako List<T>: typ elementów jest wykrywany automatycznie
  • Dodatkowy kod do wyboru: `toString`, `equals`, `hashCode`, Serializable i konstruktory
  • ZIP ze wszystkimi plikami: wiele klas `.java` można pobrać jako jedno archiwum z odpowiednią strukturą package
  • Lokalne działanie bez serwera: JSON, generowanie kodu i tworzenie ZIP odbywają się bez wysyłania danych

Przykłady kodu

Przykład wyznaczania typu Java na podstawie wartości JSON w JavaScript

javascript
function toJavaFieldType(value) {
  if (value === null) return 'Object';
  if (Array.isArray(value)) return 'List<Object>';
  if (typeof value === 'number') return Number.isInteger(value) ? 'Integer' : 'Double';
  if (typeof value === 'boolean') return 'Boolean';
  if (typeof value === 'string') return 'String';
  if (typeof value === 'object') return 'NestedType';
  return 'Object';
}

console.log(toJavaFieldType({ id: 1 }.id));
// => Integer

Przykład generowania pól Java z JSON w Pythonie

python
import json

def java_type(value):
    if value is None:
        return 'Object'
    if isinstance(value, bool):
        return 'Boolean'
    if isinstance(value, int):
        return 'Integer'
    if isinstance(value, float):
        return 'Double'
    if isinstance(value, str):
        return 'String'
    if isinstance(value, list):
        return 'List<Object>'
    if isinstance(value, dict):
        return 'NestedType'
    return 'Object'

sample = json.loads('{"name":"Alice","age":18}')
for key, value in sample.items():
    print(f'private {java_type(value)} {key};')

Przykład wygenerowanego POJO z Lombok

java
import lombok.Data;
import lombok.Builder;

@Data
@Builder
public class User {
    private Integer id;
    private String name;
}

Często Zadawane Pytania

Jak zamienić JSON na Java POJO?

Wklej JSON do lewego panelu, a narzędzie automatycznie lub po kliknięciu wygeneruje klasy Java. Potem możesz kopiować pojedyncze klasy albo pobrać ZIP z całym wynikiem.

Jakie adnotacje są obsługiwane?

Obsługiwane są `@SerializedName` dla Gson, `@JsonProperty` dla Jackson, `@JSONField` dla Fastjson oraz adnotacje Lombok, takie jak `@Data` i `@Builder`.

Co dzieje się z zagnieżdżonymi obiektami JSON?

Każdy zagnieżdżony obiekt jest przekształcany w osobną klasę Java, a klasa nadrzędna dostaje pole odpowiedniego typu. Dzięki temu łatwiej obsłużyć nawet głębokie struktury.

Czy tablice automatycznie stają się List<T>?

Tak. Tablica stringów stanie się `List<String>`, a tablica obiektów na przykład `List<User>`. Pusta tablica zwykle zostanie potraktowana jako `List<Object>`.

Czy mogę zamienić snake_case na camelCase?

Tak. Wybierz strategię camelCase, a `user_name` zamieni się w `userName`, przy zachowaniu oryginalnej nazwy JSON w adnotacji, jeśli będzie potrzebna.

Jak wygląda kod w trybie Lombok?

Po włączeniu Lombok generator tworzy krótszą klasę z `@Data`, `@Builder`, `@NoArgsConstructor` i `@AllArgsConstructor` zamiast ręcznych getterów i setterów.

Czy wynik nadaje się do Spring Boot?

Tak. Przy wyborze Jackson lub Lombok wygenerowane klasy dobrze nadają się na DTO, modele request/response oraz zwykłe beany Spring Boot.

Czy JSON jest wysyłany na serwer?

Nie. Wszystko odbywa się lokalnie w przeglądarce, więc możesz bezpieczniej pracować także z wewnętrznymi lub wrażliwymi danymi JSON.

Rozwiązywanie problemów

Pojawia się błąd Invalid JSON

Sprawdź składnię JSON. Nadmiarowe przecinki, pojedyncze cudzysłowy i klucze bez cudzysłowów możesz najpierw naprawić w JSON Repair.

Typ tablicy nie jest wykrywany tak, jak oczekuję

Puste tablice albo tablice z mieszanymi typami często stają się `List<Object>`. Dla lepszego wyniku umieść reprezentatywny element jako pierwszy.

Pola pozostają w snake_case

Prawdopodobnie w Settings wybrana jest strategia `asis`. Przełącz ją na camelCase i wygeneruj kod ponownie.

Kod Lombok nie działa w IDE

Dodaj zależność Lombok do projektu i włącz annotation processing albo zainstaluj wtyczkę Lombok w IDE.

Duży JSON tworzy zbyt wiele klas

Bardzo duże struktury wygodniej dzielić na części i generować etapami. W razie potrzeby użyj kilku modeli głównych.

Słownik

POJO
Zwykły obiekt Java bez silnej zależności od frameworka. Często używany jako model danych JSON.
JavaBean
Klasa z polami private, getterami/setterami i zwykle pustym konstruktorem zgodnie z konwencją Java.
DTO
Data Transfer Object — klasa do przenoszenia danych między warstwami, usługami lub API.
Lombok
Biblioteka Java generująca boilerplate, taki jak gettery, settery i builder, na podstawie adnotacji.
@JsonProperty
Adnotacja Jackson służąca do mapowania klucza JSON na pole Java.
@SerializedName
Adnotacja Gson zachowująca oryginalną nazwę klucza JSON podczas mapowania na pole Java.
Serializable
Interfejs znacznikowy Java umożliwiający serializację obiektu do zapisu lub transmisji.
List<T>
Generyczny typ kolekcji w Java, często używany do reprezentowania tablic JSON.

Mapowanie typów JSON na typy Java

Wartość JSONTyp JavaOpis
"Alice"StringZwykły string
18IntegerLiczba całkowita
3.14DoubleLiczba zmiennoprzecinkowa
[{...}]List<User>Tablica obiektów → List<T>

Jak dobrać bibliotekę adnotacji

BibliotekaGłówna adnotacjaKiedy warto
Jackson@JsonPropertyStandardowe mapowanie JSON w Spring Boot
Gson@SerializedNameAndroid i lekka serializacja
Fastjson@JSONFieldProjekty oparte na Fastjson
Lombok@Data / @BuilderMniej boilerplate w POJO

Authoritative References