0Pricing
Learn Rust Coding · Ders

Serileştirme ve Serileştirmeyi Geri Alma

Türetme makroları

Serileştirme ve Serileştirmeyi Geri Alma, CoddyKit'te ücretsiz bir Learn Rust Coding dersidir. Bu, 4 dersinin 1. 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, Learn Rust Coding öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn Rust Coding kursu toplamda 4 dersten oluşur.

Serde nedir?

Serde (SERialize/DEserialize), veri yapılarını JSON, YAML ve diğer biçimlere dönüştürmek ve bu biçimlerden geri dönüştürmek için Rust'ın çatısıdır.

  • Biçimden bağımsız çekirdek ve biçim kasaları
  • derive makrolarıyla çalışır

serde ekleme

serde'yi derive özelliğiyle ve serde_json gibi bir biçim kasasıyla birlikte ekleyin. Bu işlem Cargo.toml dosyasını düzenler.

[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"

Özellikleri türetme

Dönüştürülebilir olmasını sağlamak için bir yapıya #[derive(Serialize, Deserialize)] açıklamasını ekleyin. Her alanın kendisi de serileştirilebilir olmalıdır.

use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize)]
struct User {
    id: u32,
    name: String,
}

Serialize bir biçime dönüştürür

Serialize, bir değeri belirli bir biçimde baytlara veya metne dönüştürür. Yapı hangi biçimin kullanılacağını bilmez; buna biçim kasası karar verir.

Deserialize bir biçimden dönüştürür

Deserialize, türleri ve gerekli alanları doğrulayarak metni veya baytları yeniden bir Rust değerine ayrıştırır.

Serialize işlemini elle modelleme

Sezgiyi geliştirmek için burada basit bir yapı için elle yazılmış bir serileştirici bulunmaktadır. serde sizin için buna benzer kod oluşturur.

struct User { id: u32, name: String }

fn serialize(u: &User) -> String {
    format!("id={};name={}", u.id, u.name)
}

fn main() {
    let u = User { id: 7, name: "Alice".to_string() };
    println!("{}", serialize(&u));
}

Deserialize işlemini elle modelleme

Tersi de şöyledir: metni yeniden yapıya ayrıştırmak. serde'nin oluşturduğu kod bunu biçimler arasında güvenilir biçimde yapar.

struct User { id: u32, name: String }

fn deserialize(s: &str) -> User {
    let parts: Vec<&str> = s.split(',').collect();
    let id = parts[0].parse().unwrap();
    let name = parts[1].to_string();
    User { id, name }
}

fn main() {
    let u = deserialize("42,Bob");
    println!("{} {}", u.id, u.name);
}

Enum'larda türetme

Enum'lar da çalışır. Varsayılan olarak her varyant kendi adıyla serileştirilir ve varsa verileri içine yerleştirilir.

use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize)]
enum Shape {
    Circle { radius: f64 },
    Square { side: f64 },
}

İç içe yapılar

serde işlemi otomatik olarak yinelemeli biçimde yapar. Türetilmiş başka yapılar veya Vecler içeren bir yapı doğrudan çalışır.

use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize)]
struct Address { city: String }

#[derive(Serialize, Deserialize)]
struct Person {
    name: String,
    addresses: Vec<Address>,
}

Yalnızca Serialize veya yalnızca Deserialize

Yalnızca bir özelliği türetebilirsiniz. Bir API yanıt türü yalnızca Serialize, gelen istek türü ise yalnızca Deserialize olabilir.

use serde::Serialize;

#[derive(Serialize)]
struct ApiResponse {
    status: u16,
    message: String,
}

Türetme gereksinimleri

Her alan türü, türettiğiniz özelliği uygulamalıdır. Standart türler ve koleksiyonlar bunu zaten yapar; özel türlerin ise kendi türetmelerine ihtiyacı vardır.

use serde::Serialize;

#[derive(Serialize)]
struct Inner { x: i32 }

#[derive(Serialize)]
struct Outer { inner: Inner }

Hızlı Kontrol

Serialize ve deserialize işlemlerini anlayıp anlamadığınızı test edin.

Özet

serde'nin temellerini öğrendiniz:

  • serde, biçimden bağımsız bir serileştirme ve serileştirmeden çıkarma çatısıdır
  • #[derive(Serialize, Deserialize)] dönüştürme kodunu oluşturur
  • Yapılar, enum'lar ve iç içe türlerle çalışır
  • Uygun olduğunda yalnızca tek yönü türetebilirsiniz

Sırada: serde_json ile JSON kullanımı.

Sıkça Sorulan Sorular

“Serileştirme ve Serileştirmeyi Geri Alma” dersi ücretsiz mi?

Evet — “Serileştirme ve Serileştirmeyi Geri Alma” 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 Learn Rust Coding kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn Rust Coding kursu toplamda 4 dersten oluşur.

“Serileştirme ve Serileştirmeyi Geri Alma” dersinde ne öğreneceğim?

Türetme makroları Learn Rust Coding 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.

Learn Rust Coding öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn Rust Coding, 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 1. dersidir.

“Serileştirme ve Serileştirmeyi Geri Alma” 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 Learn Rust Coding dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn Rust Coding 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. Serileştirme ve Serileştirmeyi Geri Alma
  2. JSON ile Çalışma
  3. Özel Serileştirme
  4. Diğer Biçimler
← Learn Rust Coding Sayfasına Dön