根据JSON规范,JSON文档的根可以是对象或数组。 serde_json
使用struct
#[derive(Deserialize)]
struct Person {
first_name: String,
last_name: String,
}
fn main() {
let s = r#"[{"first_name": "John", "last_name": "Doe"}]"#;
// this will break because we have a top-level array
let p: Person = serde_json::from_str(s).unwrap();
println!("Name: {} {}", p.first_name, p.last_name);
}
但是我找不到任何关于如何反序列化struct
s(未命名)数组的文档。
答案 0 :(得分:3)
我们只需将结果声明为该类型的向量:
let p: Vec<Person> = serde_json::from_str(s).unwrap();
println!("Name: {} {}", p[0].first_name, p[0].last_name);