Rust 有没有办法让serde_json严格反序列化?

Rust 有没有办法让serde_json严格反序列化?,rust,serde,serde-json,Rust,Serde,Serde Json,我的意思是,如果两个对象在某些属性上重叠,是否有方法尝试匹配所有属性? 例如: 使用serde::{序列化,反序列化}; 使用serde_json;//1.0.47; // 1.0.104 #[派生(序列化、反序列化、调试)] 发布结构A{ 发布项目1:i32, 发布项目2:i32, } #[派生(序列化、反序列化、调试)] 发布结构B{ 发布项目1:i32, 发布项目2:i32, 发布项目3:i32, } fn main(){ 让json_data=r#“{”item_1:10,“item_2

我的意思是,如果两个对象在某些属性上重叠,是否有方法尝试匹配所有属性? 例如:

使用serde::{序列化,反序列化};
使用serde_json;//1.0.47; // 1.0.104
#[派生(序列化、反序列化、调试)]
发布结构A{
发布项目1:i32,
发布项目2:i32,
}
#[派生(序列化、反序列化、调试)]
发布结构B{
发布项目1:i32,
发布项目2:i32,
发布项目3:i32,
}
fn main(){
让json_data=r#“{”item_1:10,“item_2:100”,“item_3:1000}”#;
如果让Ok(数据)=serde_json::from_str::

它总是在
A
上成功,但我希望它失败,因为它有额外的数据,所以它落在
B
(在它匹配的地方)。这只是我遇到的问题的一个例子。

Serde有很多方法来配置这种行为

其中之一就是,它确实做到了:

使用serde::{反序列化,序列化};
使用serde_json;//1.0.47;//1.0.104
#[派生(序列化、反序列化、调试)]
#[serde(拒绝未知字段)]
发布结构A{
发布项目1:i32,
发布项目2:i32,
}
#[派生(序列化、反序列化、调试)]
发布结构B{
发布项目1:i32,
发布项目2:i32,
发布项目3:i32,
}
fn main(){
让json_data=r#“{”item_1:10,“item_2:100”,“item_3:1000}”#;
如果让Ok(数据)=serde_json::from_str:)