Serde是Rust生态中最常用的序列化框架,几乎所有Rust项目都在使用。 ## 基本用法 ```rust use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize, Debug)] struct User { name: String, age: u32, emails: Vec, } let user = User { name: "Alice".to_string(), age: 30, emails: vec!["alice@example.com".to_string()], }; let json = serde_json::to_string(&user).unwrap(); let user2: User = serde_json::from_str(&json).unwrap(); ``` ## 自定义序列化 ```rust #[derive(Serialize, Deserialize)] #[serde(rename_all = "snake_case")] struct ApiRequest { #[serde(rename = "user_id")] id: u64, #[serde(skip_serializing_if = "Option::is_none")] nickname: Option, #[serde(default)] active: bool, } ``` ## 枚举处理 ```rust #[derive(Serialize, Deserialize)] #[serde(tag = "type", content = "value")] echo Message { Text(String), Number(i32), Flag(bool), } ``` ## 多格式支持 ```rust let config: Config = toml::from_str(&toml_str).unwrap(); let data: Data = serde_yaml::from_str(&yaml_str).unwrap(); let bytes = bincode::serialize(&data).unwrap(); let data2: Data = bincode::deserialize(&bytes).unwrap(); ``` Serde是Rust生态的基石,掌握它对任何Rust开发者都至关重要。