Rust 当案例不';不匹配?
我有一个JSON结构,如下所示:Rust 当案例不';不匹配?,rust,serde,serde-json,Rust,Serde,Serde Json,我有一个JSON结构,如下所示: { "type": "suite", "event": "started", "test_count": 1 } 我想反序列化到这些结构中: #[derive(Debug, Deserialize)] enum ResultType { Suite, Test, } #[derive(Debug, Deserialize)] enum ResultEvent { Started, Failed, Ok, } #[de
{ "type": "suite", "event": "started", "test_count": 1 }
我想反序列化到这些结构中:
#[derive(Debug, Deserialize)]
enum ResultType {
Suite,
Test,
}
#[derive(Debug, Deserialize)]
enum ResultEvent {
Started,
Failed,
Ok,
}
#[derive(Debug, Deserialize)]
struct JsonResult {
#[serde(rename(deserialize = "type"))]
test_type: ResultType,
event: ResultEvent,
test_count: Option<u32>,
}
如果我将枚举值的大小写更改为全小写或全大写,则它可以工作,但我希望能够使用PascalCase。您只需要将其置于枚举定义之前
其他可能的值有小写
,大写
,帕斯卡莱斯
,骆驼壳
,蛇壳
,尖叫蛇壳
,烤肉串壳
,尖叫烤肉串壳
,使用[serde(rename=“name”)]
更改序列化和反序列化时用于枚举变量的字符串
#[派生(调试、反序列化)]
枚举结果类型{
#[serde(rename=“suite”)]
一套
#[serde(rename=“test”)]
测试,
}
#[派生(调试、反序列化)]
枚举结果事件{
#[serde(rename=“start”)]
起动,
#[serde(rename=“failed”)]
失败,
#[serde(rename=“ok”)]
好啊
}
#[派生(调试、反序列化)]
结构JsonResult{
#[serde(重命名(反序列化=“类型”)]
测试类型:结果类型,
事件:ResultEvent,
测试计数:选项,
}
您还可以使用#[serde(alias=“name”)]
添加额外的字符串,以便在反序列化时接受
详细信息见serde文档:我需要
小写字母
,但这确实是修复方法!非常感谢。