Przejdź do treści

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.

JSON

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ć

  1. Wklej obiekt lub tablicę JSON do lewego edytora.
  2. Przeczytaj klasy: root to Root, a zagnieżdżone obiekty stają się oddzielnymi klasami, nazwanymi na cześć ich klucza.
  3. 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ę.

Specyfikacje i referencje