JSON'dan Java'ya
JSON verisini Java POJO, DTO veya model sınıflarına hızlıca dönüştürün ve hazır kodu doğrudan IDE'nize taşıyın. Tüm üretim tarayıcı içinde yerel olarak yapılır.
İlgili Öneriler
JSON to Java dönüştürücü ne işe yarar?
JSON to Java dönüştürücü, JSON yapısını analiz edip bunu standart Java POJO sınıflarına otomatik olarak çeviren bir geliştirme aracıdır. package, import, private alanlar, getter ve setter yazma yükünü ciddi biçimde azaltır.
Özellikle Spring Boot, Android, MyBatis ve harici API entegrasyonlarında örnek JSON yanıtını kısa sürede kullanılabilir Java modeline çevirmek gerekir. Bu araç iç içe nesneleri ayrı sınıflara böler, dizileri ise `List<T>` olarak yorumlar.
GeekFormat aracı Gson, Jackson, Fastjson, Lombok, Serializable, Builder, alan adlandırma stratejileri ve ZIP indirme desteği sunar. Oluşturulan kod projeye doğrudan eklenebilir.
Kullanım senaryoları
- Spring Boot API örnek JSON'larını DTO ve VO sınıflarına dönüştürmek
- Android ya da Java istemcileri için API yanıtlarından JavaBean oluşturmak
- Harici servis entegrasyonlarında Jackson / Gson model sınıflarını hızlıca üretmek
- Lombok kullanarak daha kısa POJO sınıfları üretip tekrar eden kodu azaltmak
- Karmaşık iç içe JSON yapılarını anlaşılır Java sınıflarına bölmek
- Tüm sınıfları ZIP olarak indirip IDE'ye toplu aktarmak
Nasıl Kullanılır
- JSON'u sola yapıştırın, örnek yükleyin veya `.json` / `.txt` dosyası içe aktarın
- Settings içinde kök sınıf adı, package, anotasyon kütüphanesi, adlandırma stratejisi ve Lombok / Serializable seçeneklerini ayarlayın
- Otomatik üretimi bekleyin ya da Convert'e basıp sağ taraftaki Java sınıflarını kontrol edin
- Gerekli sınıfları kopyalayın veya Download ZIP ile hepsini indirin
Özellikler
- Birden çok anotasyon kütüphanesi desteği: Gson, Jackson, Fastjson ve Lombok arasında geçiş yapabilirsiniz
- Lombok ile sadeleştirme: `@Data`, `@Builder` ve kurucu anotasyonlarıyla uzun POJO kodunu kısaltabilirsiniz
- Alan adlandırma stratejileri: orijinal adı koruyabilir ya da snake_case'i camelCase'e çevirebilirsiniz
- İç içe sınıf üretimi: iç içe JSON nesneleri ayrı Java sınıflarına dönüştürülür
- Dizileri List<T> yapma: JSON dizileri için öğe tipi otomatik algılanır
- Ek kod üretimi: `toString`, `equals`, `hashCode`, Serializable ve kurucular isteğe bağlıdır
- Tüm dosyaları ZIP olarak indirme: birden fazla `.java` dosyasını package yapısıyla birlikte kaydedebilirsiniz
- Yerel tarayıcı işleme: JSON çözümleme, kod üretimi ve ZIP paketleme tarayıcı içinde yapılır
Kod Örnekleri
JavaScript ile JSON değerinden Java alan tipi çıkarma örneği
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));
// => IntegerPython ile JSON alanlarından Java tanımı üretme örneği
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};')Üretim sonrası kullanılabilecek Lombok POJO örneği
javaimport lombok.Data;
import lombok.Builder;
@Data
@Builder
public class User {
private Integer id;
private String name;
}Sık Sorulan Sorular
JSON'u Java POJO'ya nasıl dönüştürürüm?
JSON'u sol panele yapıştırın; araç otomatik ya da manuel çalıştırma ile Java sınıflarını oluşturur. Sonrasında sınıfları tek tek kopyalayabilir veya tamamını ZIP olarak indirebilirsiniz.
Hangi anotasyonlar destekleniyor?
`@SerializedName` (Gson), `@JsonProperty` (Jackson), `@JSONField` (Fastjson) ve Lombok için `@Data`, `@Builder` gibi anotasyonlar desteklenir.
İç içe JSON nesneleri nasıl ele alınıyor?
Her iç içe nesne ayrı bir Java sınıfına dönüştürülür ve üst sınıf ilgili tipi alan olarak kullanır. Böylece derin yapılar da daha anlaşılır hale gelir.
Diziler otomatik olarak List<T> olur mu?
Evet. String dizileri `List<String>`, nesne dizileri örneğin `List<User>` olarak üretilir. Boş diziler varsayılan olarak `List<Object>` kabul edilir.
snake_case alanlarını camelCase'e çevirebilir miyim?
Evet. Adlandırma stratejisinde camelCase seçildiğinde `user_name` → `userName` olur; isterseniz JSON'daki orijinal ad anotasyonda korunur.
Lombok modunda nasıl bir kod üretilir?
Lombok açıkken araç manuel getter/setter yerine `@Data`, `@Builder`, `@NoArgsConstructor` ve `@AllArgsConstructor` kullanan daha kısa sınıflar üretir.
Çıktıyı Spring Boot projesinde kullanabilir miyim?
Evet. Jackson veya Lombok seçildiğinde üretilen sınıflar Spring Boot DTO, request/response modeli ve klasik bean kullanımı için uygundur.
JSON verisi sunucuya yükleniyor mu?
Hayır. Tüm işlemler tarayıcı içinde yerel olarak yürütüldüğü için dahili veya hassas JSON örnekleriyle de daha rahat çalışabilirsiniz.
Sorun Giderme
Invalid JSON hatası alıyorum
Önce JSON sözdizimini kontrol edin. Fazla virgül, tek tırnak ve tırnaksız anahtarları JSON Repair ile düzeltebilirsiniz.
Dizi tipi beklediğim gibi algılanmıyor
Boş diziler veya karışık tipli diziler çoğu zaman `List<Object>` olur. Daha doğru sonuç için temsil edici öğeyi ilk sıraya koyun.
Alan adları snake_case olarak kalıyor
Settings içinde strateji `asis` olabilir. camelCase seçeneğine geçip kodu yeniden üretin.
Lombok kodu IDE'de çalışmıyor
Projeye Lombok bağımlılığını ekleyin ve IDE'de annotation processing veya Lombok eklentisini etkinleştirin.
Büyük JSON çok fazla sınıf oluşturuyor
Çok büyük yapıları parçalara bölerek üretmek daha rahat olur. Gerekirse birden fazla kök model kullanın.
Sözlük
- POJO
- Herhangi bir framework'e sıkı bağlı olmayan sıradan Java nesnesidir. JSON veri modeli olarak yaygın kullanılır.
- JavaBean
- private alanlar, getter/setter ve genelde boş kurucu içeren geleneksel Java sınıf biçimidir.
- DTO
- Data Transfer Object; katmanlar, servisler veya API'ler arasında veri taşımak için kullanılan sınıftır.
- Lombok
- getter, setter ve builder gibi tekrar eden Java kodunu anotasyonla üreten kütüphanedir.
- @JsonProperty
- Jackson'da JSON anahtarını Java alanına bağlamak için kullanılan anotasyondur.
- @SerializedName
- Gson'da orijinal JSON anahtar adını koruyarak Java alanına eşleyen anotasyondur.
- Serializable
- Nesnenin serileştirilmesini sağlayan Java işaret arayüzüdür.
- List<T>
- JSON dizilerini temsil etmek için sık kullanılan Java jenerik koleksiyon tipidir.
JSON tipleri ile Java tipleri eşlemesi
| JSON değeri | Java tipi | Açıklama |
|---|---|---|
"Alice" | String | Normal metin alanı |
18 | Integer | Tam sayı |
3.14 | Double | Ondalıklı sayı |
[{...}] | List<User> | Nesne dizisi → List<T> |
Anotasyon kütüphanesi seçimi
| Kütüphane | Temel anotasyon | Uygun kullanım |
|---|---|---|
Jackson | @JsonProperty | Spring Boot varsayılan JSON eşleme |
Gson | @SerializedName | Android ve hafif serileştirme |
Fastjson | @JSONField | Fastjson tabanlı mevcut Java projeleri |
Lombok | @Data / @Builder | Daha az boilerplate içeren kısa POJO |
Authoritative References
- JSON Compress
- CSV'den JSON'a
- JSON'den CSV'ye
- JSON Diff
- JSON Escape / Unescape
- JSON Düzleştirme
- JSON Biçimlendirici
- JSON Oluşturucu
- JSONPath Sorgu
- JSON Birleştir
- JSON Onarımı
- JSON Schema Doğrulayıcı
- JSON Sıralama
- JSON Stringify
- JSON'dan HTML'ye
- JSON'dan Java'ya
- JSON'den Markdown'a
- JSON to SQL
- JSON'dan TOML'e
- JSON'dan TypeScript'e
- XML'den JSON'a
- JSON'u XML'e donustur
- YAML'den JSON'a
- JSON → YAML Dönüştürücü
- JSON'dan Go'ya
- JSON'u Rust'a
- JSON to Swift
- JSON'dan C#'ye
- JSON'dan C++'ya
- JSON'dan PHP'ye
- JSON'u Python'a