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
- Serileştirme ve Serileştirmeyi Geri Alma
- JSON ile Çalışma
- Özel Serileştirme
- Diğer Biçimler