JSON ke Kelas Java (POJO atau Record)
Buat POJO Java dengan getter dan setter atau record Java 16 dari JSON, memakai @JsonProperty Jackson untuk key tak lazim dan kelas statis bersarang. Gratis.
Tipe bersarang menjadi static nested class. Kunci yang bukan nama Java valid diberi @JsonProperty (Jackson).
Berjalan sepenuhnya di browser Anda. Data Anda tidak pernah diunggah.
Alat Terkait
Lihat SemuaApa itu JSON ke Kelas Java?
Hasilkan kelas model Java dari contoh JSON, baik sebagai POJO klasik dengan field private, getter, dan setter maupun sebagai record Java yang ringkas. Objek bersarang menjadi kelas statis bersarang (atau record bersarang) di dalam tipe root.
Cara menggunakan JSON ke Kelas Java
- Tempel contoh JSON ke Input JSON (atau klik Muat contoh / Buka file).
- Atur Nama tipe root (bawaan
Root). - Pilih Gaya output: Class dengan getter/setter (Jackson) atau Record (Java 16 ke atas).
- Salin kode Java yang dihasilkan atau Unduh sebagai file.
Contoh
{"id":1,"name":"A","tags":["x"]} import java.util.List;
public class Root {
private long id;
private String name;
private List<String> tags;
public long getId() { return id; }
public void setId(long id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public List<String> getTags() { return tags; }
public void setTags(List<String> tags) { this.tags = tags; }
} Kapan menggunakan JSON ke Kelas Java
Gunakan untuk merintis DTO untuk kode Spring, Jackson, atau Gson. Sesuaikan tipe seperti tanggal (LocalDate, Instant) dan enum secara manual, dan pecah kelas bersarang menjadi file terpisah jika basis kode Anda lebih menyukainya.
Cara kerja JSON ke Kelas Java
Contoh JSON ditelusuri secara rekursif dan setiap posisi mengumpulkan tipe yang pernah dilihatnya. Array berisi objek digabung menjadi satu tipe: key yang tidak ada di sebagian elemen menjadi opsional, key yang bernilai null di suatu tempat menjadi nullable, bilangan bulat yang bercampur dengan desimal menjadi tipe floating-point, dan campuran tipe lain beralih ke tipe dinamis. Objek bersarang menjadi tipe bernama sendiri (PascalCase dari key, key array disingularkan: orders → Order), dengan akhiran angka jika nama bentrok. Keluaran Java memakai primitif long/double/boolean untuk nilai wajib dan Long/Double/Boolean untuk nilai nullable atau opsional, String, List<T> untuk array, dan Object untuk nilai dinamis. Nama field berupa camelCase; bila berbeda dari key JSON, anotasi Jackson @JsonProperty("key") ditambahkan dan import-nya disertakan otomatis.
Kasus Penggunaan Umum
- Membuat DTO untuk klien REST Spring Boot
- Memodelkan pesan JSON untuk konsumen Kafka
- Menghasilkan record untuk konfigurasi imutabel
- Merintis fixture pengujian di Java
Pertanyaan Umum
Apakah saya butuh Jackson?
Hanya jika sebagian key bukan nama Java yang valid; saat itu @JsonProperty dipakai. Selain itu kelasnya Java biasa dan juga bekerja dengan Gson.
Mengapa long, bukan int?
Angka JSON bisa melebihi rentang int (ID, timestamp). long menghindari overflow; ganti ke int jika Anda tahu nilainya kecil.
Apakah record bekerja dengan Jackson?
Ya, Jackson 2.12+ mendeserialisasi record Java lewat konstruktor kanoniknya.