我有一个枚举:
#[derive(Serialize, Deserialize)]
enum Action {
Join,
Leave,
}
Run Code Online (Sandbox Code Playgroud)
和一个结构:
#[derive(Serialize, Deserialize)]
struct Message {
action: Action,
}
Run Code Online (Sandbox Code Playgroud)
我传递了一个 JSON 字符串:
"{\"action\":0}" // `json_string` var
Run Code Online (Sandbox Code Playgroud)
但是当我尝试像这样反序列化时:
let msg: Message = serde_json::from_str(json_string)?;
Run Code Online (Sandbox Code Playgroud)
我得到了错误expected value at line 1 column 11。
在 JSON 中,如果我用0字符串替换数字"Join",它会起作用,但我希望数字对应于Action枚举的值(0is Action::Join、1is Action::Leave),因为它来自 TypeScript 请求。有没有一种简单的方法可以实现这一目标?