Serde 是序列化和反序列化 Rust 数据结构的库,支持 JSON、BSON、YAML 等多种常用格式,并且可以自定义序列化和反序列化方式。
简介
特点是代码简洁、易于使用、性能高效,也是 Rust 生态中最受欢迎的序列化库之一,如下是一个简单的示例。
在 Cargo.toml
中增加如下的依赖关系。
[dependencies]
serde = {version="1.0.197", features=["derive"]}
serde_json = "1.0.115"
然后示例代码为。
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
struct Point {
x: i32,
y: i32,
}
fn main() {
let point = Point{x: 1, y: 2};
let pstr = serde_json::to_string(&point).unwrap();
println!("Serialized Point {}", pstr);
let pnew: Point = serde_json::from_str(&pstr).unwrap();
println!("Deserialize {:?}", pnew);
}
其中关键的是派生宏,也就是需要 features=["derive"]
开启,然后就可以在结构体中添加 #[derive(Serialize, Deserialize)]
注解。