Pengubah JSON ke Kelas Java
Membuat kelas Java dari JSON: halaman menjalankan json_typegen (WebAssembly) dalam mode Kotlin dan menulis ulang setiap data class menjadi kelas Java dengan kolom privat, konstruktor untuk semua argumen, getter, dan setter.
Membuat POJO untuk mendeserialisasi respons REST dengan Jackson.
Kapan menggunakannya
- Membuat POJO untuk mendeserialisasi respons REST dengan Jackson.
- Membuat kerangka kelas DTO untuk controller Spring dari contoh payload.
Cara penggunaan
- Tempelkan objek atau array JSON ke editor kiri.
- Periksa kelasnya: akar bernama Root dan objek bertingkat menjadi kelas terpisah yang dinamai sesuai kuncinya.
- Salin ke file .java terpisah (impor List dan Jackson disertakan) dan sesuaikan tipenya jika diperlukan.
JSON
{
"id": 42,
"user_name": "ada",
"active": true,
"tags": ["admin", "editor"]
}Kelas Java
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;
}
…Detail dan batasan
Pembuatan kode berjalan di browser dengan WebAssembly; tidak ada pengaturan.
Kunci snake_case menjadi kolom camelCase dengan @JsonProperty dari Jackson; impor Jackson dan java.util.List disertakan jika digunakan.
Angka dipetakan ke Long atau Double dan boolean ke Boolean; getter boolean menggunakan get, bukan is.
Nilai null diberi tipe Object, dan array berisi null menjadi List<?>. Ganti dengan tipe konkret setelah mengetahui data sebenarnya.
FAQ
Bisakah saya mengonversi array JSON pada tingkat akar?
Ya. Akar menjadi kelas pembungkus Root dengan kolom List<Root2>, dan elemen array menjadi kelas Root2.
Apakah kolom opsional ditangani?
Kunci yang tidak ada pada sebagian elemen array dideteksi, tetapi hasil Java menghapus penanda opsional sehingga setiap kolom memakai tipe pembungkus biasa yang dapat bernilai null.
Apakah alat ini membuat anotasi Lombok atau record?
Tidak. Alat ini menulis kelas biasa dengan konstruktor, getter, dan setter eksplisit.
Bagaimana tipe nilai null ditentukan?
Kolom yang bernilai null pada contoh menjadi Object (private Object note;), karena tipe konkret tidak dapat disimpulkan. Berikan contoh dengan nilai nyata untuk mendapatkan String, Long, atau kelas bertingkat.