Serileştirilebilir Sınıflar
Modellere ek açıklama ekleyin
Serileştirilebilir Sınıflar, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.
@Serializable Ek Açıklaması
Bir sınıfı serileştirilebilir yapmak için ona @Serializable ek açıklamasını ekleyin. Ardından derleyici eklentisi sınıf için bir serileştirici üretir.
import kotlinx.serialization.Serializable
@Serializable
data class User(val id: Int, val name: String)Veri Sınıflarıyla Çalışır
Herhangi bir sınıfa ek açıklama ekleyebilirsiniz, ancak veri sınıfları modeller için en yaygın tercihtir; çünkü equals, hashCode ve toString işlevlerini otomatik olarak üretirler.
Kurucudaki tüm özellikler serileştirilmiş alanlara dönüşür.
Varsayılan Değerler
Varsayılan değerleri olan özellikler, kod çözme sırasında isteğe bağlı hâle gelir. JSON bu özellikleri içermezse varsayılan değer kullanılır.
@Serializable
data class Config(
val host: String,
val port: Int = 8080,
val secure: Boolean = false
)Null Kabul Eden Özellikler
Null kabul eden türler JSON null değerine eşlenir. Varsayılan değeri olmayan null kabul eden bir özellik JSON içinde yine zorunludur; ancak değeri null olabilir.
@Serializable
data class Profile(
val name: String,
val bio: String? = null
)@SerialName ile Alanları Yeniden Adlandırma
JSON alan adları çoğu zaman Kotlin adlandırma kurallarından farklıdır. Bunları eşlemek için @SerialName kullanın.
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class Account(
@SerialName("user_id") val userId: Int,
@SerialName("full_name") val fullName: String
)@Transient ile Özellikleri Yok Sayma
Bir özelliği serileştirmenin dışında bırakmak için ona @Transient ekleyin. Geçici özelliklerin mutlaka varsayılan bir değeri olmalıdır.
import kotlinx.serialization.Transient
import kotlinx.serialization.Serializable
@Serializable
data class Session(
val token: String,
@Transient val cachedAt: Long = 0L
)İç İçe Serileştirilebilir Sınıflar
Serileştirilebilir sınıflar başka serileştirilebilir sınıflar içerebilir. Eklenti tüm sınıf grafiğini otomatik olarak işler.
@Serializable
data class Address(val city: String, val zip: String)
@Serializable
data class Company(val name: String, val address: Address)Modellerde Koleksiyonlar
List, Set ve Map gibi standart koleksiyonlar, öğeleri serileştirilebilir olduğunda kutudan çıktığı hâliyle serileştirilebilir.
@Serializable
data class Team(
val name: String,
val members: List<String>,
val scores: Map<String, Int>
)Numaralandırmalar Desteklenir
Numaralandırma sınıflarına @Serializable ek açıklaması eklenebilir ve varsayılan olarak adlarıyla serileştirilirler. Girişleri özelleştirmek için bunlarda @SerialName kullanın.
@Serializable
enum class Role {
@SerialName("admin") ADMIN,
@SerialName("user") USER
}Zorunlu ve İsteğe Bağlı Özelliklerin Özeti
Bir özellik, varsayılan bir değeri yoksa JSON içinde zorunludur. Temel kurallar:
- Varsayılan değer yoksa → zorunlu
- Varsayılan değer varsa → isteğe bağlı
@Transient→ yok sayılır, varsayılan değeri olmalıdır- Varsayılan değeri olmayan null kabul eden özellik → zorunludur, ancak null olabilir
Doğrudan Serileştirilemeyenler
Yerleşik bir serileştiricisi olmayan türler (ör. java.util.Date, java.time.Instant, UUID) için daha sonra öğreneceğiniz özel bir serileştirici gerekir.
Böyle bir serileştirici olmadan bunları serileştirmeye çalışmak derleme hatasına yol açar.
Hızlı Kontrol
@Transient hakkında aşağıdaki ifadelerden hangisi doğrudur?
Özet
Modellere ek açıklama eklemeyi öğrendiniz:
- Sınıfa
@Serializableeklenir - Varsayılan değerler alanları isteğe bağlı yapar
@SerialNameJSON anahtarlarını yeniden adlandırır@Transientbir alanı dışarıda bırakır (varsayılan değer gerektirir)
Sırada JSON'u gerçekten kodlamak ve kodunu çözmek var.
Sıkça Sorulan Sorular
“Serileştirilebilir Sınıflar” dersi ücretsiz mi?
Evet — “Serileştirilebilir Sınıflar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.
“Serileştirilebilir Sınıflar” dersinde ne öğreneceğim?
Modellere ek açıklama ekleyin Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Serileştirilebilir Sınıflar” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- kotlinx.serialization Kurulumu
- Serileştirilebilir Sınıflar
- JSON Kodlama ve Kod Çözme
- Özel Serileştiriciler