Konwerter JSON na klasy Java — Numio
Generuje klasy Java z JSON: strona uruchamia json_typegen (WebAssembly) w trybie Kotlin i przepisuje każdą klasę danych na klasę Java z prywatnymi polami, konstruktorem obsługującym wszystkie argumenty, pobierającymi i ustawiającymi.
Tworzenie POJO w celu deserializacji odpowiedzi REST z Jacksonem.
Kiedy go używać
- Tworzenie POJO w celu deserializacji odpowiedzi REST z Jacksonem.
- Szkicowanie klas DTO dla kontrolera Spring na podstawie przykładowego ładunku.
Jak używać
- Wklej obiekt lub tablicę JSON do lewego edytora.
- Przeczytaj klasy: root to Root, a zagnieżdżone obiekty stają się oddzielnymi klasami, nazwanymi na cześć ich klucza.
- Skopiuj je do oddzielnych plików .java (importy dla List i Jackson są uwzględnione) i w razie potrzeby dostosuj typy.
JSON
{
"id": 42,
"user_name": "ada",
"active": true,
"tags": ["admin", "editor"]
}Klasy Javy
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Root {
private Long id;
@JsonProperty("user_name")
private String userName;
private Boolean active;
private List<String> tags;
public Root(Long id, String userName, Boolean active, List<String> tags) {
this.id = id;
this.userName = userName;
this.active = active;
this.tags = tags;
}
public Long getId() {
return this.id;
}
…Szczegóły i ograniczenia
Generacja działa w przeglądarce z WebAssembly; nie ma żadnych ustawień.
Klucze snake_case stają się polami camelCase z Jacksonem @JsonProperty; import Jacksona i java.util.List są importowane, gdy są używane.
Liczby są mapowane na Long lub Double, a wartości logiczne na Boolean; Getery logiczne używają get, a nie is.
Wartość null otrzymuje typ Object, a tablica wartości null — List<?>. Zastąp je konkretnymi typami, gdy poznasz rzeczywiste dane.
FAQ
Czy mogę przekonwertować tablicę JSON w katalogu głównym?
Tak. Element główny staje się klasą opakowującą Root z polem List<Root2>, a elementy tablicy stają się klasą Root2.
Czy obsługiwane są pola opcjonalne?
Wykryto brakujące klucze w niektórych elementach tablicy, ale dane wyjściowe Java usuwają opcjonalny znacznik, więc każde pole jest zwykłym typem opakowania dopuszczającym wartość null.
Czy generuje adnotacje lub rekordy Lombok?
Nie. Pisze zwykłe klasy z jawnymi konstruktorami, pobierającymi i ustawiającymi.
Jak wpisuje się wartości null?
Pole null w próbce staje się Object (private Object note;), ponieważ nie da się wywnioskować konkretnego typu. Podaj próbkę z rzeczywistą wartością, aby otrzymać String, Long lub zagnieżdżoną klasę.