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

  1. Tempel JSON di sisi kiri, muat contoh, atau impor file `.json` / `.txt`
  2. Di Settings, atur nama class root, package, library anotasi, strategi penamaan, dan opsi Lombok / Serializable
  3. Tunggu hasil otomatis atau tekan Convert untuk melihat daftar class Java di sisi kanan
  4. 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

javascript
function 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));
// => Integer

Contoh membuat field Java dari JSON dengan Python

python
import 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

java
import 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 JSONTipe JavaKeterangan
"Alice"StringString biasa
18IntegerBilangan bulat
3.14DoubleBilangan pecahan
[{...}]List<User>Array objek → List<T>

Panduan memilih library anotasi

LibraryAnotasi utamaCocok untuk
Jackson@JsonPropertyPemetaan JSON bawaan Spring Boot
Gson@SerializedNameAndroid dan serialisasi ringan
Fastjson@JSONFieldProyek Java yang sudah memakai Fastjson
Lombok@Data / @BuilderPOJO ringkas dengan boilerplate minimal

Authoritative References