gpt4 book ai didi

json - 是否可以使用 serde_json 反序列化部分 JSON 对象?

转载 作者:行者123 更新时间:2023-12-03 11:30:15 25 4
gpt4 key购买 nike

假设以下 JSON:

{
"person": {
"first_name": "Ala",
"last_name": "Makota"
}
}

是否可以将此对象反序列化为如下所示的结构,跳过 "person"

#[derive(Deserialize)]
struct Person {
first_name: String,
last_name: String,
}

很容易将 JSON 对象反序列化为包装结构,如下所示:

#[derive(Deserialize)]
struct Object {
person: Person
}

但就我而言,我只对 Person 结构感兴趣。

编辑:

虽然我知道我可以使用 serde_jsonValue 类型来对 JSON 进行操作,几乎就像在 Map 上一样,但我我对利用 derive 和属性来实现我的目标的可能性特别感兴趣。

最佳答案

将 json 视为带有“person”键和 Person 的映射值可以反序列化为 HashMap然后检索 Person值(value)。

let person = r#"
{
"person": {
"first_name": "Ala",
"last_name": "Makota"
}
}
"#;

let deserialized = serde_json::from_str::<HashMap<&str, Person>>(&person);

turbo fish ::<HashMap<&str, Person>>用作帮助编译器确定反序列化类型的紧凑方法。

关于json - 是否可以使用 serde_json 反序列化部分 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60121633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com