I have an enum:
#[derive(Serialize, Deserialize)]
enum Action {
Join,
Leave,
}
还有一个结构体:
#[derive(Serialize, Deserialize)]
struct Message {
action: Action,
}
然后我传递一个 JSON 字符串:
"{\"action\":0}" // `json_string` var
但是当我尝试像这样反序列化时:
let msg: Message = serde_json::from_str(json_string)?;
我遇到了错误,错误信息为:在第1行第11列处期望有值
如果我将JSON中的数字0
替换为字符串"Join"
,它可以工作,但我希望该数字对应于Action
枚举的值(0
是Action::Join
,1
是Action::Leave
),因为它来自TypeScript请求。是否有简单的方法来实现这一点?