İçeriğe geç

JSON'dan Java Sınıflarına Dönüştürücü

JSON'dan Java sınıfları üretir: sayfa json_typegen (WebAssembly) aracını Kotlin modunda çalıştırır; her data class'ı özel alanlar, tüm alanları alan bir kurucu, getter ve setter yöntemleri içeren bir Java sınıfına dönüştürür.

REST yanıtını Jackson ile nesneye dönüştürmek için POJO oluşturmak.

JSON

Ne zaman kullanılır?

  • REST yanıtını Jackson ile nesneye dönüştürmek için POJO oluşturmak.
  • Örnek veriden Spring denetleyicisi için DTO sınıflarının taslağını hazırlamak.

Nasıl kullanılır?

  1. Soldaki düzenleyiciye bir JSON nesnesi veya dizisi yapıştırın.
  2. Sınıfları inceleyin: kök Root olur; iç içe nesneler anahtarlarıyla adlandırılan ayrı sınıflara dönüşür.
  3. Bunları ayrı .java dosyalarına kopyalayın (List ve Jackson içe aktarımları dâhildir) ve gerekirse türleri düzenleyin.

JSON

{
  "id": 42,
  "user_name": "ada",
  "active": true,
  "tags": ["admin", "editor"]
}

Java sınıfları

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;
	}

…

Ayrıntılar ve sınırlamalar

Üretim tarayıcıda WebAssembly ile yapılır; ayar yoktur.

snake_case anahtarlar Jackson @JsonProperty ile camelCase alanlara dönüşür; kullanıldıklarında Jackson ve java.util.List içe aktarılır.

Sayılar Long veya Double, mantıksal değerler Boolean olur; mantıksal alanların getter yöntemleri is yerine get kullanır.

null değeri Object, null dizisi List<?> olur. Gerçek veriyi öğrendiğinizde bunları belirli türlerle değiştirin.

FAQ

Kökteki bir JSON dizisini dönüştürebilir miyim?

Evet. Kök, List<Root2> alanı olan bir Root sarmalayıcı sınıfa, dizi öğeleri de Root2 sınıfına dönüşür.

İsteğe bağlı alanlar ele alınıyor mu?

Bazı dizi öğelerinde eksik olan anahtarlar algılanır; ancak Java çıktısı isteğe bağlı işaretini kaldırır. Bu nedenle her alan, null alabilen normal bir sarmalayıcı türdür.

Lombok açıklamaları veya record üretir mi?

Hayır. Açık kurucuları, getter ve setter yöntemleri olan normal sınıflar yazar.

null değerlerin türü nasıl belirlenir?

Örnekte null olan alan Object olur (private Object note;), çünkü belirli bir tür çıkarılamaz. String, Long veya iç içe sınıf elde etmek için gerçek değer içeren bir örnek sağlayın.

Teknik özellikler ve kaynaklar