0Pricing
Kotlin Academy · Ders

JSON Kodlama ve Kod Çözme

JSON'a dönüştürün ve JSON'dan dönüştürün

JSON Kodlama ve Kod Çözme, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 3. 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.

Json Nesnesi

Json nesnesi, kodlama ve kod çözmenin temelidir. Varsayılan örnek kullanıma hazırdır; isterseniz yapılandırılmış bir örnek de oluşturabilirsiniz.

import kotlinx.serialization.json.Json

val json = Json

Dizeye Kodlama

Bir nesneyi JSON dizesine dönüştürmek için encodeToString kullanın.

import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json

@Serializable
data class Book(val title: String, val pages: Int)

fun main() {
    val book = Book("Kotlin in Action", 360)
    val text = Json.encodeToString(book)
    println(text)
}

Dizeden Kod Çözme

JSON'u yeniden bir nesneye dönüştürmek için decodeFromString kullanın. Hedef tür çıkarılabilir veya açıkça verilebilir.

import kotlinx.serialization.Serializable
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json

@Serializable
data class Book(val title: String, val pages: Int)

fun main() {
    val text = "{\"title\":\"Atomic Kotlin\",\"pages\":500}"
    val book = Json.decodeFromString<Book>(text)
    println(book.title)
}

Listeleri Kodlama

Koleksiyonlar otomatik olarak kodlanır. Serileştirilebilir nesnelerden oluşan bir liste JSON dizisine dönüşür.

import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json

@Serializable
data class Tag(val name: String)

fun main() {
    val tags = listOf(Tag("kotlin"), Tag("json"))
    println(Json.encodeToString(tags))
}

Biçimlendirilmiş Yazdırma

Girintili çıktıyı etkinleştirmek için bir Json { } oluşturucusu yapılandırın; bu, günlük kaydı ve hata ayıklama için kullanışlıdır.

import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json

@Serializable
data class Point(val x: Int, val y: Int)

val pretty = Json { prettyPrint = true }

fun main() {
    println(pretty.encodeToString(Point(1, 2)))
}

Bilinmeyen Anahtarları Yok Sayma

Varsayılan olarak JSON, sınıfınızda bulunmayan anahtarları içeriyorsa kod çözme başarısız olur. Bunları atlamak için ignoreUnknownKeys = true ayarını yapın; gelişen API'ler için kullanışlıdır.

import kotlinx.serialization.json.Json

val lenient = Json { ignoreUnknownKeys = true }

Varsayılanları Kodlama

Varsayılan olarak, varsayılan değerlerine eşit olan özellikler yazılmaz. Bunları her zaman dahil etmek için encodeDefaults = true ayarını etkinleştirin.

import kotlinx.serialization.json.Json

val withDefaults = Json { encodeDefaults = true }

JsonElement ile Çalışma

Dinamik JSON için türü belirli bir sınıf yerine JsonElement ağacına ayrıştırma yapabilirsiniz.

import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonElement

fun main() {
    val element: JsonElement = Json.parseToJsonElement("{\"a\":1}")
    println(element)
}

JsonObject Alanlarını Okuma

Bir JsonElement öğesini JsonObject türüne dönüştürüp alanlara anahtarlarıyla erişin, ardından ilkel değerleri dönüştürün.

import kotlinx.serialization.json.Json
import kotlinx.serialization.json.jsonObject
import kotlinx.serialization.json.jsonPrimitive
import kotlinx.serialization.json.int

fun main() {
    val obj = Json.parseToJsonElement("{\"a\":1}").jsonObject
    val a = obj["a"]!!.jsonPrimitive.int
    println(a)
}

Gidiş-Dönüş Serileştirmesi

Kodlayıp ardından kodunu çözmek, eşit bir nesne döndürmelidir; buna gidiş-dönüş denir. Bu, modelinizin mantık kontrolünü yapmak için harika bir yoldur.

import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json

@Serializable
data class P(val x: Int)

fun main() {
    val original = P(42)
    val back = Json.decodeFromString<P>(Json.encodeToString(original))
    println(original == back)
}

Yaygın Kod Çözme Hataları

Şu çalışma zamanı istisnalarına dikkat edin:

  • SerializationException: Unexpected JSON token — hatalı biçimlendirilmiş JSON
  • Eksik zorunlu alan — JSON'da varsayılan değeri olmayan bir özellik eksik
  • Bilinmeyen anahtar — ignoreUnknownKeys ile katı davranışı devre dışı bırakın

Hızlı Kontrol

API'niz sık sık yeni JSON alanları ekliyor. Kod çözmenin bozulmasını hangi yapılandırma önler?

Özet

Artık nesneler ve JSON arasında geçiş yapabilirsiniz:

  • encodeToString / decodeFromString
  • Json { } ile yapılandırma: prettyPrint, ignoreUnknownKeys, encodeDefaults
  • JsonElement aracılığıyla dinamik JSON ayrıştırma

Sırada desteklenmeyen türler için özel serileştiriciler var.

Sıkça Sorulan Sorular

“JSON Kodlama ve Kod Çözme” dersi ücretsiz mi?

Evet — “JSON Kodlama ve Kod Çözme” 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.

“JSON Kodlama ve Kod Çözme” dersinde ne öğreneceğim?

JSON'a dönüştürün ve JSON'dan dönüştürün 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 3. dersidir.

“JSON Kodlama ve Kod Çözme” 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

  1. kotlinx.serialization Kurulumu
  2. Serileştirilebilir Sınıflar
  3. JSON Kodlama ve Kod Çözme
  4. Özel Serileştiriciler
← Kotlin Academy Sayfasına Dön