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ć
- Wklej JSON po lewej stronie, załaduj przykład albo importuj plik `.json` / `.txt`
- W Settings ustaw nazwę klasy głównej, package, bibliotekę adnotacji, strategię nazewnictwa oraz opcje Lombok / Serializable
- Poczekaj na automatyczne wygenerowanie lub kliknij Convert i sprawdź listę klas Java po prawej stronie
- 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
javascriptfunction 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));
// => IntegerPrzykład generowania pól Java z JSON w Pythonie
pythonimport 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
javaimport 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ść JSON | Typ Java | Opis |
|---|---|---|
"Alice" | String | Zwykły string |
18 | Integer | Liczba całkowita |
3.14 | Double | Liczba zmiennoprzecinkowa |
[{...}] | List<User> | Tablica obiektów → List<T> |
Jak dobrać bibliotekę adnotacji
| Biblioteka | Główna adnotacja | Kiedy warto |
|---|---|---|
Jackson | @JsonProperty | Standardowe mapowanie JSON w Spring Boot |
Gson | @SerializedName | Android i lekka serializacja |
Fastjson | @JSONField | Projekty oparte na Fastjson |
Lombok | @Data / @Builder | Mniej boilerplate w POJO |
Authoritative References
- JSON Compress
- Konwerter CSV na JSON
- JSON na CSV
- JSON Diff
- JSON Escape / Unescape
- Spłaszczanie JSON
- JSON Formatter
- Generator JSON
- Zapytanie JSONPath
- Scal JSON
- Naprawa JSON
- Walidator JSON Schema
- Sortowanie JSON
- JSON Stringify
- JSON do HTML
- JSON do Javy
- JSON na Markdown
- JSON do SQL
- JSON do TOML
- JSON do TypeScript
- XML na JSON
- Konwertuj JSON do XML
- YAML na JSON
- JSON → YAML
- JSON na Go
- JSON na Rust
- JSON to Swift
- JSON na C#
- JSON na C++
- JSON na PHP
- JSON na Python