课题
- 将 JSON 字符串反序列化为 Persons 类(结构)的对象 ,然后将这个对象序列化为 JSON 字符串。
- Persons 类(结构)包含一个字段:Person 类(结构)的 persons 数组。
- Person 类(结构)包含两个字段:字符串类型的 name 字段和整数类型的 age 字段。
Rust
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
struct Persons {
// #[serde(rename(serialize = "persons", deserialize = "persons"))]
persons: Vec<Person>,
}
#[derive(Serialize, Deserialize, Debug)]
struct Person {
// #[serde(rename(serialize = "name", deserialize = "name"))]
name: String,
// #[serde(rename(serialize = "age", deserialize = "age"))]
age: i32,
}
fn main() -> Result<(), Box<dyn Error>> {
let json_str = r#"{
"persons" : [
{
"name" : "Joe",
"age" : 12
}
]
}"#;
let v: Persons = serde_json::from_str(&json_str)?;
println!("{:?}", v);
let json_str = serde_json::to_string(&v)?;
println!("{}", json_str);
let json_str = serde_json::to_string_pretty(&v)?;
println!("{}", json_str);
Ok(())
}
/*
Persons { persons: [Person { name: "Joe", age: 12 }] }
{"persons":[{"name":"Joe","age":12}]}
{
"persons": [
{
"name": "Joe",
"age": 12
}
]
}
*/