JSON ile Çalışma
serde_json
JSON ile Çalışma, CoddyKit'te ücretsiz bir Learn Rust Coding 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, 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_json kasası
serde_json, serde için JSON biçimi uygulamasıdır. Rust değerleri ile JSON metni arasında dönüşüm yapmak için işlevler sunar.
- Metin için
to_string/from_str - Dinamik JSON için
Value
Yapıdan JSON metnine
serde_json::to_string, herhangi bir Serialize değerini JSON metnine serileştirir.
use serde::Serialize;
#[derive(Serialize)]
struct User { id: u32, name: String }
fn main() {
let u = User { id: 1, name: "Alice".to_string() };
let json = serde_json::to_string(&u).unwrap();
println!("{}", json);
}JSON metninden yapıya
serde_json::from_str, JSON'u türü belirli bir değere ayrıştırır ve hatalı girdileri ele alabilmeniz için Result döndürür.
use serde::Deserialize;
#[derive(Deserialize, Debug)]
struct User { id: u32, name: String }
fn main() {
let data = r#"{"id":1,"name":"Alice"}"#;
let u: User = serde_json::from_str(data).unwrap();
println!("{:?}", u);
}Biçimlendirilmiş yazdırma
İnsanların okuyabileceği, girintili JSON oluşturmak için to_string_pretty kullanın; bu, yapılandırma dosyaları ve hata ayıklama için kullanışlıdır.
use serde::Serialize;
#[derive(Serialize)]
struct Cfg { debug: bool, level: u8 }
fn main() {
let c = Cfg { debug: true, level: 3 };
println!("{}", serde_json::to_string_pretty(&c).unwrap());
}json! makrosu
Bir yapı tanımlamadan Value oluşturan json! makrosuyla satır içinde JSON oluşturun.
use serde_json::json;
fn main() {
let v = json!({
"name": "Alice",
"roles": ["admin", "user"]
});
println!("{}", v);
}Value türü
serde_json::Value, herhangi bir JSON düğümünü temsil eden bir enum'dur: null, boolean, sayı, metin, dizi veya nesne. Şekil bilinmediğinde kullanın.
use serde_json::Value;
fn main() {
let data = r#"{"name":"Bob","age":30}"#;
let v: Value = serde_json::from_str(data).unwrap();
println!("{}", v["name"]);
println!("{}", v["age"]);
}Value'dan güvenli okuma
Dizin erişimi bir Value döndürür; türü belirli verileri güvenle okumak için Option döndüren as_str veya as_i64 gibi erişim yöntemlerini kullanın.
use serde_json::Value;
fn name_of(v: &Value) -> Option<&str> {
v.get("name")?.as_str()
}JSON erişimini yalın Rust ile modelleme
Bir değeri anahtarına göre okumak ve yoksa geri dönüş değeri kullanmak, bir Value nesnesini sorgulama biçimini yansıtır. Burada bunu bir HashMap ile yapıyoruz.
use std::collections::HashMap;
fn main() {
let mut obj: HashMap<&str, &str> = HashMap::new();
obj.insert("name", "Alice");
let name = obj.get("name").copied().unwrap_or("unknown");
let city = obj.get("city").copied().unwrap_or("unknown");
println!("name={} city={}", name, city);
}Baytlar ve yazıcılar
Performans için to_vec baytlara serileştirir; to_writer ise bir dosya veya yuva gibi herhangi bir io::Write nesnesine doğrudan akış sağlar.
use serde::Serialize;
#[derive(Serialize)]
struct Msg { text: String }
fn to_bytes(m: &Msg) -> Vec<u8> {
serde_json::to_vec(m).unwrap()
}Ayrıştırma hatalarını ele alma
from_str, Result döndürür. Panik oluşturmak yerine kullanıcılara yararlı bir ileti vermek için hatayı eşleştirin.
use serde::Deserialize;
#[derive(Deserialize)]
struct User { id: u32 }
fn parse(s: &str) -> String {
match serde_json::from_str::<User>(s) {
Ok(u) => format!("id {}", u.id),
Err(e) => format!("invalid JSON: {}", e),
}
}Value ve yapılar arasında dönüştürme
serde_json::from_value ve to_value, her ikisine de ihtiyaç duyduğunuzda türü belirli bir yapı ile dinamik Value arasında dönüşüm yapar.
use serde::Deserialize;
use serde_json::json;
#[derive(Deserialize)]
struct User { name: String }
fn main() {
let v = json!({"name": "Eve"});
let u: User = serde_json::from_value(v).unwrap();
println!("{}", u.name);
}Hızlı Kontrol
JSON ile çalışmayı anlayıp anlamadığınızı test edin.
Özet
serde_json ile JSON işlemeyi öğrendiniz:
to_string/from_stryapılarla JSON metni arasında dönüşüm yaparto_string_prettyokunabilir biçimlendirme yaparjson!makrosu veValuedinamik JSON'u işler- Güvenli okumak ve ayrıştırmak için erişim yöntemlerini ve
Result'ı kullanın
Sırada: alan açıklamalarıyla serileştirmeyi özelleştirme.
Sıkça Sorulan Sorular
“JSON ile Çalışma” dersi ücretsiz mi?
Evet — “JSON ile Çalışma” 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.
“JSON ile Çalışma” dersinde ne öğreneceğim?
serde_json 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 2. dersidir.
“JSON ile Çalışma” 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.