Rust Serde序列化框架
掌握使用Serde进行JSON、YAML等格式的序列化与反序列化 · 难度:入门 · +15XP
Serde概述
Serde是Rust中最高效的序列化框架,通过派生宏自动生成序列化代码,支持JSON、YAML、TOML等多种格式。
基本用法
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize, Debug)]
struct User {
name: String,
age: u32,
email: Option<String>,
}
fn main() {
let user = User {
name: String::from("Alice"),
age: 30,
email: Some(String::from("alice@example.com")),
};
let json = serde_json::to_string(&user).unwrap();
println!("JSON: {}", json);
let deserialized: User = serde_json::from_str(&json).unwrap();
println!("{:?}", deserialized);
}
常用属性
| 属性 | 说明 |
|---|---|
| #[serde(rename="new_name")] | 重命名字段 |
| #[serde(default)] | 使用默认值 |
| #[serde(skip)] | 跳过字段 |
练习提示:添加#[serde(default)]属性,并尝试反序列化缺少字段的JSON。