Rust 当案例不';不匹配?

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

我有一个JSON结构,如下所示:

{ "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。

您只需要将其置于枚举定义之前

其他可能的值有
小写
大写
PascalCase
camelCase
蛇壳
尖叫蛇壳
烤肉串壳
,以及
尖叫烤肉串壳
您只需要在枚举定义之前输入

其他可能的值有
小写
大写
帕斯卡莱斯
骆驼壳
蛇壳
尖叫蛇壳
烤肉串壳
尖叫烤肉串壳
,使用
[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文档:

使用
#[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文档:

我需要
小写字母
,但这确实是修复方法!非常感谢。我需要
小写
,但这确实是解决方法!非常感谢。