JSON ke POJO: class atau record Java dari JSON
Tempel JSON Anda dan dapatkan kode Java siap pakai: satu class untuk setiap objek, lengkap dengan field private, konstruktor tanpa argumen, getter dan setter, atau record Java jika Anda mau. Objek bersarang ditulis di dalam class induknya, sehingga seluruh hasil muat dalam satu file .java. Tambahkan anotasi Jackson atau Gson saat Anda memerlukan kunci JSON asli. Konversi berjalan di browser dan JSON Anda tidak diunggah.
JSON to POJO online: cara memakainya
- Tempel JSON ke kotak JSON (tertulis “Tempel JSON di sini...”). Teks yang ditempel langsung dikonversi. Jika Anda mengetik, kode diperbarui sekitar 300 milidetik setelah Anda berhenti.
- Baca class di bawah Kode Java. Satu baris di bawahnya, seperti “2 kelas dihasilkan.”, memberi tahu berapa banyak yang ditulis.
- Pilih Salin, tepat di bawah kode. Tombol menampilkan “Tersalin” sesaat. Simpan kode dalam file dengan nama class utama, misalnya
Root.java. - Untuk mengubah hasil, buka Pengaturan: isi Nama kelas root (bawaannya
Root), pilih di Anotasi antara Tanpa, Jackson, atau Gson, atau centang Gunakan record, bukan kelas. Kode berubah segera setelah Anda mengganti pengaturan. - Pilih Hapus untuk mengosongkan kotak dan mulai lagi.
JSON POJO converter: contoh JSON ke class Java
Ini yang Anda tempel: { "user_id": 7, "name": "Ana", "price": 4.5, "tags": ["a", "b"], "address": { "city": "Kyoto" } }
Dengan Anotasi diatur ke “Tanpa”, hasilnya diawali import java.util.List; dan public class Root. Field-nya adalah Integer userId, String name, Double price, List<String> tags, dan Address address. Setelah itu ada konstruktor tanpa argumen serta getter dan setter seperti getUserId dan setUserId.
Objek bersarang address menjadi Address, sebuah public static class di dalam Root, sehingga satu file sudah cukup. Kunci user_id menjadi field userId. Baris status memberi tahu Anda: “1 nama field diubah agar sesuai dengan Java.”
JSON ke record Java dengan anotasi Jackson
Atur Nama kelas root menjadi Order, pilih Jackson di Anotasi, lalu centang Gunakan record, bukan kelas. JSON yang sama menjadi public record Order(...).
Setiap komponen record membawa @JsonProperty("key") dengan kunci JSON asli, jadi user_id tetap terpetakan ke userId. Jika Anda memilih Gson, komponen yang sama membawa @SerializedName("key"), lengkap dengan import Gson. Record memerlukan Java 16 atau lebih baru.
Bagaimana tipe JSON menjadi tipe Java
Semua tipe berbentuk boxed, sehingga setiap field boleh kosong atau bernilai null.
- Bilangan bulat seperti
7:Integer. Terlalu besar untuk itu (12345678901):Long. Lebih besar lagi (99999999999999999999):BigInteger, dengan import. - Angka dengan titik desimal atau eksponen, seperti
4.5,1.0, atau2e3:Double. - Teks:
String.trueataufalse:Boolean(getter-nyagetActive, bukanisActive).null:Object. - Array dengan satu tipe, seperti
["a", "b"]:List<String>, denganjava.util.Listdiimpor. Array kosong atau bertipe campuran:List<Object>. Array di dalam array:List<List<Integer>>. - Objek: class atau record bersarang yang dinamai sesuai kuncinya.
Angka dibaca persis seperti yang tertulis, jadi ID yang panjang tidak pernah dibulatkan. Import hanya muncul jika kode memakainya. Jika satu kunci muncul dua kali dalam objek yang sama, yang terakhir yang dipakai.
Bagaimana nama class dan field dipilih
user_iddanuser-namemenjadi fielduserIddanuserName(camelCase).- Kata kunci Java seperti
classmenjadi_class. - Nama yang diawali angka, seperti
2nd, menjadi_2nd. - Kunci
itemsberisi array objek menghasilkan classItemdan fieldList<Item>: kunci diubah ke bentuk tunggal. - Kunci
Stringberisi objek menghasilkanStringData. Nama yang akan menutupiString,List, atauObjectmendapat akhiranData. - Dua objek bernama sama: class kedua diberi nomor, karena nama class harus unik di dalam file.
Nama class root dibersihkan menjadi nama Java yang valid, dan kotak yang kosong menghasilkan Root. Jika JSON itu sendiri diawali array objek, Root menggambarkan satu item dan halaman memberi tahu Anda untuk membaca JSON sebagai List<Root>.
Jika JSON tidak diterima
Pembacanya ketat, seperti JSON itu sendiri: komentar, tanda kutip tunggal, dan koma di akhir adalah kesalahan. Di bawah “JSON ini tidak dapat dibaca” ada alasan yang jelas beserta posisinya, seperti “Baris 3, kolom 5”, misalnya “Pengurai berhenti di “}”. Periksa apakah ada koma, titik dua, tanda kurung, atau tanda kutip yang hilang tepat sebelumnya.”
- Jika teks Anda berupa objek JavaScript dengan kunci tanpa tanda kutip atau dengan tanda kutip tunggal, jalankan dulu lewat “Objek JavaScript ke JSON” untuk mendapatkan JSON yang ketat.
- Untuk merapikan JSON sebelum dikonversi, gunakan “Pemformat JSON”.
- Untuk memeriksa JSON terhadap skema, gunakan “Validator JSON Schema”.
- Untuk interface TypeScript dari JavaScript, lihat “Konverter JS ke TS”.
JSON valid yang tidak berisi objek, seperti 42 atau array angka, menampilkan “JSON ini tidak berisi objek yang bisa dijadikan kelas.” Teks lebih dari 2.000.000 karakter ditolak, begitu juga penyarangan yang lebih dalam dari 200 tingkat.
Pertanyaan yang sering diajukan
Bagaimana cara mengubah JSON menjadi POJO di Java?
Tempel JSON ke kotak “JSON” dan salin kode dari “Kode Java”. Anda mendapat satu class untuk setiap objek JSON, dengan field private, konstruktor publik tanpa argumen, serta method publik getX dan setX. Simpan kode dalam file dengan nama class utama, misalnya Root.java, lalu baca JSON dengan Jackson atau Gson.
Bagaimana cara mengubah array JSON menjadi objek Java?
Tempel array objek apa adanya. Alat ini menggambarkan satu item array sebagai class utama dan memberi tahu Anda untuk membaca JSON sebagai List. Di Jackson itu berupa TypeReference>, di Gson berupa TypeToken>. Array di dalam objek menjadi field List, dengan class yang dinamai sesuai kuncinya.
JSON POJO Jackson: bagaimana menjaga kunci JSON asli?
Buka “Pengaturan” dan pilih Jackson atau Gson di “Anotasi”. Jackson menambahkan @JsonProperty("key") dan Gson menambahkan @SerializedName("key") pada setiap field, lengkap dengan import. Dengan “Tanpa”, kunci seperti user_id menjadi field userId, yang tidak akan terpetakan kembali ke JSON kecuali kunci aslinya dipertahankan lewat anotasi atau strategi penamaan.
Bisakah saya membuat record Java dari JSON?
Bisa. Centang “Gunakan record, bukan kelas” di “Pengaturan”. Setiap objek JSON menjadi public record Name(Type a, Type b) {}, dan objek bersarang menjadi record di dalam record induknya. Record memerlukan Java 16 atau lebih baru. Anotasi tetap berfungsi dan diletakkan pada setiap komponen record.
Mengapa angka JSON menjadi Integer di satu tempat dan Double di tempat lain?
Tipenya mengikuti cara angka itu ditulis. Bilangan bulat menjadi Integer, atau Long jika terlalu besar untuk Integer, atau BigInteger jika terlalu besar untuk Long. Angka yang ditulis dengan titik desimal atau eksponen menjadi Double, bahkan jika nilainya 1.0.
Apa yang terjadi jika objek dalam array memiliki kunci yang berbeda?
Objek-objek itu digabung menjadi satu class yang memuat setiap kunci yang muncul di salah satunya, sehingga kunci yang hanya dimiliki sebagian objek tetap mendapat field. Jika sebuah kunci berisi tipe yang berbeda atau array-nya kosong, field-nya bertipe Object atau List. Periksa field seperti itu secara manual.
Apakah alat ini menghasilkan class Kotlin atau anotasi Lombok?
Tidak. Hasilnya Java biasa: class dengan getter dan setter, atau record. Jika Anda memakai Lombok, hapus method getter dan setter lalu letakkan @Data pada class. Data class Kotlin harus Anda tulis terpisah.
Apakah JSON ke Java online ini mengunggah JSON saya, dan sebesar apa batasnya?
Hingga 2.000.000 karakter, dengan penyarangan sampai 200 tingkat. Konversi berjalan di browser Anda, jadi JSON tidak diunggah atau disimpan di mana pun.