JSON ke Java
Ubah JSON menjadi Java POJO, DTO, atau model class dengan cepat lalu pindahkan kode yang sudah jadi langsung ke IDE. Semua proses berjalan lokal di browser.
Rekomendasi Terkait
Apa fungsi konverter JSON ke Java?
Konverter JSON ke Java menganalisis struktur JSON dan mengubahnya menjadi class Java POJO standar secara otomatis. Anda tidak perlu lagi menulis package, import, field private, getter, dan setter satu per satu.
Ini sangat berguna di Spring Boot, Android, MyBatis, maupun integrasi API eksternal, saat contoh respons JSON perlu segera diubah menjadi model Java yang siap dipakai. Objek bertingkat dipecah menjadi class terpisah, sedangkan array dipetakan ke `List<T>`.
Alat GeekFormat mendukung Gson, Jackson, Fastjson, Lombok, Serializable, Builder, strategi penamaan field, serta unduhan ZIP. Kode yang dihasilkan bisa langsung dimasukkan ke proyek.
Kasus penggunaan
- Mengubah contoh JSON dari Spring Boot API menjadi DTO dan VO
- Membuat JavaBean untuk Android atau klien Java berdasarkan respons API
- Membuat model Jackson / Gson dengan cepat untuk integrasi layanan eksternal
- Memakai Lombok untuk menghasilkan POJO yang lebih ringkas dan minim boilerplate
- Memecah JSON bertingkat rumit menjadi class Java yang lebih mudah dipahami
- Mengunduh seluruh class sebagai ZIP lalu mengimpornya ke IDE
Cara Penggunaan
- Tempel JSON di sisi kiri, muat contoh, atau impor file `.json` / `.txt`
- Di Settings, atur nama class root, package, library anotasi, strategi penamaan, dan opsi Lombok / Serializable
- Tunggu hasil otomatis atau tekan Convert untuk melihat daftar class Java di sisi kanan
- Salin class yang dibutuhkan atau unduh semuanya lewat Download ZIP
Fitur
- Dukungan banyak library anotasi: Gson, Jackson, Fastjson, dan Lombok
- Perapihan lewat Lombok: aktifkan `@Data`, `@Builder`, dan constructor untuk mengurangi boilerplate
- Strategi penamaan field: pertahankan nama asli atau ubah snake_case menjadi camelCase
- Pembuatan nested class otomatis: objek JSON bertingkat diubah menjadi class Java terpisah
- Array menjadi List<T>: tipe elemen array dideteksi otomatis
- Opsi kode tambahan: `toString`, `equals`, `hashCode`, Serializable, dan constructor bisa dipilih
- Unduh semua file sebagai ZIP: beberapa file `.java` bisa disimpan sekaligus dengan struktur package
- Pemrosesan lokal tanpa server: parsing JSON, pembuatan kode, dan ZIP dilakukan di browser
Contoh Kode
Contoh inferensi tipe Java dari nilai JSON dengan JavaScript
javascriptfunction toJavaFieldType(value) {
if (value === null) return 'Object';
if (Array.isArray(value)) return 'List<Object>';
if (typeof value === 'number') return Number.isInteger(value) ? 'Integer' : 'Double';
if (typeof value === 'boolean') return 'Boolean';
if (typeof value === 'string') return 'String';
if (typeof value === 'object') return 'NestedType';
return 'Object';
}
console.log(toJavaFieldType({ id: 1 }.id));
// => IntegerContoh membuat field Java dari JSON dengan Python
pythonimport json
def java_type(value):
if value is None:
return 'Object'
if isinstance(value, bool):
return 'Boolean'
if isinstance(value, int):
return 'Integer'
if isinstance(value, float):
return 'Double'
if isinstance(value, str):
return 'String'
if isinstance(value, list):
return 'List<Object>'
if isinstance(value, dict):
return 'NestedType'
return 'Object'
sample = json.loads('{"name":"Alice","age":18}')
for key, value in sample.items():
print(f'private {java_type(value)} {key};')Contoh POJO Lombok setelah pembuatan kode
javaimport lombok.Data;
import lombok.Builder;
@Data
@Builder
public class User {
private Integer id;
private String name;
}Pertanyaan Umum
Bagaimana cara mengubah JSON menjadi Java POJO?
Tempel JSON ke panel kiri, lalu alat akan membuat class Java secara otomatis atau setelah tombol Convert ditekan. Anda bisa menyalin tiap class atau mengunduh semuanya dalam ZIP.
Anotasi apa saja yang didukung?
Didukung `@SerializedName` untuk Gson, `@JsonProperty` untuk Jackson, `@JSONField` untuk Fastjson, serta anotasi Lombok seperti `@Data` dan `@Builder`.
Bagaimana objek JSON bertingkat diproses?
Setiap objek bertingkat diubah menjadi class Java tersendiri, dan class induk menyimpan field bertipe class tersebut. Ini memudahkan penanganan struktur yang dalam.
Apakah array otomatis menjadi List<T>?
Ya. Array string menjadi `List<String>`, array objek bisa menjadi `List<User>`. Array kosong biasanya dipetakan sebagai `List<Object>`.
Bisakah mengubah snake_case menjadi camelCase?
Bisa. Saat strategi camelCase dipilih, `user_name` menjadi `userName`, sementara nama key JSON asli masih bisa dipertahankan di anotasi.
Seperti apa kode di mode Lombok?
Saat Lombok diaktifkan, alat menghasilkan class yang lebih ringkas dengan `@Data`, `@Builder`, `@NoArgsConstructor`, dan `@AllArgsConstructor` tanpa getter/setter manual.
Apakah hasilnya cocok untuk Spring Boot?
Ya. Jika memilih Jackson atau Lombok, class yang dihasilkan sangat cocok dipakai sebagai DTO, model request/response, dan bean biasa di Spring Boot.
Apakah JSON saya diunggah ke server?
Tidak. Semua proses berlangsung lokal di browser, sehingga Anda lebih aman saat bekerja dengan JSON internal atau sensitif.
Pemecahan Masalah
Muncul error Invalid JSON
Periksa dulu sintaks JSON. Koma berlebih, kutip tunggal, atau key tanpa kutip bisa dibetulkan lewat JSON Repair.
Tipe array tidak terdeteksi seperti yang saya harapkan
Array kosong atau array dengan campuran tipe sering menjadi `List<Object>`. Letakkan elemen yang paling mewakili di awal agar hasil lebih tepat.
Nama field tetap dalam snake_case
Mungkin strategi penamaan di Settings masih `asis`. Ganti ke camelCase lalu hasilkan ulang.
Kode Lombok tidak dikenali oleh IDE
Tambahkan dependensi Lombok ke proyek dan aktifkan annotation processing atau plugin Lombok di IDE.
JSON besar menghasilkan terlalu banyak class
Untuk struktur yang sangat besar, lebih nyaman jika JSON dipecah dan dihasilkan per bagian. Bila perlu gunakan beberapa model root.
Glosarium
- POJO
- Plain Old Java Object, yaitu objek Java biasa yang tidak bergantung erat pada framework, sering dipakai sebagai model data JSON.
- JavaBean
- Bentuk class Java tradisional dengan field private, getter/setter, dan biasanya constructor kosong.
- DTO
- Data Transfer Object, class untuk mengirim data antar layer, service, atau API.
- Lombok
- Library Java yang membantu menghasilkan getter, setter, builder, dan boilerplate lain lewat anotasi.
- @JsonProperty
- Anotasi Jackson untuk memetakan key JSON ke field Java.
- @SerializedName
- Anotasi Gson untuk mempertahankan nama key JSON asli saat dipetakan ke field Java.
- Serializable
- Marker interface Java yang memungkinkan objek diserialisasi untuk disimpan atau ditransmisikan.
- List<T>
- Tipe koleksi generic Java yang umum dipakai untuk mewakili array JSON.
Pemetaan tipe JSON ke tipe Java
| Nilai JSON | Tipe Java | Keterangan |
|---|---|---|
"Alice" | String | String biasa |
18 | Integer | Bilangan bulat |
3.14 | Double | Bilangan pecahan |
[{...}] | List<User> | Array objek → List<T> |
Panduan memilih library anotasi
| Library | Anotasi utama | Cocok untuk |
|---|---|---|
Jackson | @JsonProperty | Pemetaan JSON bawaan Spring Boot |
Gson | @SerializedName | Android dan serialisasi ringan |
Fastjson | @JSONField | Proyek Java yang sudah memakai Fastjson |
Lombok | @Data / @Builder | POJO ringkas dengan boilerplate minimal |
Authoritative References
- Kompres JSON
- CSV ke JSON
- JSON ke CSV
- JSON Diff
- JSON Escape / Unescape
- Meratakan JSON
- Pemformat JSON
- Generator JSON
- Kueri JSONPath
- Penggabungan JSON
- Perbaikan JSON
- Validator Skema JSON
- Urutkan JSON
- JSON Stringify
- JSON ke HTML
- JSON ke Java
- JSON ke Markdown
- JSON ke SQL
- JSON ke TOML
- JSON ke TypeScript
- XML ke JSON
- Ubah JSON ke XML
- YAML ke JSON
- JSON → YAML
- JSON ke Python
- JSON ke Go
- JSON ke Rust
- JSON ke Swift
- JSON ke C#
- JSON ke C++
- JSON ke PHP