JSON İşlemleri: GSON ve Jackson Kütüphaneleri ile Veri Dönüşümü

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16
JSON ve Java: Veri Dönüşümünün Ustaları



1. Temel Kavramlar: Serialization ve Deserialization​


Serialization (Serileştirme): Bir Java nesnesini, ağ üzerinden gönderilebilir bir metin formatı olan JSON'a çevirme işlemidir.

Deserialization (Ters Serileştirme): Gelen bir JSON metnini, Java içinde kullanabileceğimiz bir nesneye dönüştürme işlemidir.

2. Jackson: Kurumsal Dünyanın Standardı​


Jackson, Spring Boot'un varsayılan JSON kütüphanesidir. Çok hızlıdır, karmaşık veri yapılarını mükemmel yönetir ve geniş bir notasyon desteği sunar.

Örnek Kullanım (ObjectMapper):​

Java:
ObjectMapper mapper = new ObjectMapper();
Kullanici user = new Kullanici("Can", 25);

// Java Objesini JSON'a çevirme
String json = mapper.writeValueAsString(user);

// JSON'u Java Objesine çevirme
Kullanici donusenUser = mapper.readValue(json, Kullanici.class);

Önemli Notasyonlar:​


@JsonProperty("user_name"): JSON'daki alan adı ile Java'daki değişken adı farklıysa bunları eşleştirir.

@JsonIgnore: Belirli bir alanın (örneğin şifre) JSON'a dahil edilmesini engeller.

3. GSON: Google'ın Hafif ve Şık Çözümü​


Google tarafından geliştirilen GSON, kullanımı inanılmaz basit ve hafif bir kütüphanedir. Özellikle küçük ve orta ölçekli projelerde veya Android geliştirmede sıkça tercih edilir.

Örnek Kullanım (Gson):​

Java:
Gson gson = new Gson();
Urun urun = new Urun("Laptop", 15000);

// Obje -> JSON
String jsonStr = gson.toJson(urun);

// JSON -> Obje
Urun yeniUrun = gson.fromJson(jsonStr, Urun.class);

4. Jackson vs. GSON Karşılaştırması​


ÖzellikJacksonGSON
PerformansÇok yüksek (Büyük verilerde lider).Hızlı, ama çok büyük dosyalarda geride kalabilir.
Kullanım KolaylığıBiraz daha karmaşık yapılandırma.Çok basit ve sezgisel.
Spring BootVarsayılan olarak gelir.Harici olarak eklenmelidir.
EsneklikÇok geniş (XML, YAML desteği de var).Daha kısıtlı ama yeterli.

5. JSON İşlemlerinde Dikkat Edilmesi Gerekenler​


Boş Constructor: Her iki kütüphane de nesneyi oluştururken parametresiz bir "boş constructor"a ihtiyaç duyar. (Lombok kullanıyorsan @NoArgsConstructor eklemeyi unutma!)

Naming Strategy: Java'da camelCase (değiskenAdi) kullanılırken, JSON dünyasında genellikle snake_case (degisken_adi) tercih edilir. Kütüphane ayarlarından bunu otomatiğe bağlayabilirsiniz.

Tarih Formatları: Tarih (Date/LocalDateTime) alanları JSON'a çevrilirken varsayılan olarak karmaşık sayılar dönebilir. @JsonFormat ile bunu yyyy-MM-dd gibi okunabilir hale getirmelisiniz.



Sonuç

Eğer Spring Boot ekosistemindeysen Jackson senin en iyi dostundur. Ancak bağımsız, küçük bir araç geliştiriyorsan veya "tek satırda işimi halledeyim" diyorsan GSON pratikliğiyle öne çıkar. Her iki kütüphane de seni manuel metin parçalama (string parsing) derdinden kurtarır.
 
Geri
Üst