我正试图构建一个 Tauri 应用程序。当我试图将前端传递的 JSON 数据反序列化到我的 Rust 后端时,出现了一个错误,我不知道该如何修复。
JSON 遵循以下模式:
{
positive: ICriterion[],
negative: ICriterion[],
}
ICriterion {
name: 'tribunal'|appealCourt'|'group'|'role'|'prevalent_domain'|'placed',
label: string,
value: number[]|string|bool
}
我们尝试使用 Rust 枚举类型为 value
字段实现联合类型:
#[derive(Deserialize)]
pub struct SortDataInput {
positive: Vec<Criterion>,
negative: Vec<Criterion>,
}
#[derive(Deserialize)]
pub enum CriterionValue {
IntegerArray(Vec<i32>),
Name(String),
Boolean(bool),
}
#[derive(Deserialize)]
pub struct Criterion {
name: String,
value: CriterionValue,
}
但是当我尝试执行我的方法时,出现了一个错误,指出“Civil”(这是可能的字符串值)是一个未知的变量。
我猜我们在设置Rust枚举方面有些问题,但由于我们是Rust的初学者,我们无法真正弄清楚如何修复它。
您会如何创建正确的类型,以便Serde可以轻松反序列化我们的JSON?