- 引入
serde
及其相关序列化/反序列化格式的crate:
假设使用serde_json
作为序列化和反序列化的格式,在Cargo.toml
中添加:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
- 结构体定义及
serde
派生宏使用:
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)]
struct MyStruct {
num: i32,
text: String,
}
- 序列化示例:
use serde_json;
fn main() {
let my_struct = MyStruct {
num: 42,
text: String::from("Hello, world!"),
};
let serialized = serde_json::to_string(&my_struct).expect("Serialization failed");
println!("Serialized: {}", serialized);
}
- 反序列化示例:
use serde_json;
fn main() {
let json_str = r#"{"num": 42, "text": "Hello, world!"}"#;
let deserialized: MyStruct = serde_json::from_str(json_str).expect("Deserialization failed");
println!("Deserialized: num = {}, text = {}", deserialized.num, deserialized.text);
}