我有一个枚举:
#[derive(Serialize, Deserialize)]
enum Action {
Join,
Leave,
}
和一个 struct :
#[derive(Serialize, Deserialize)]
struct Message {
action: Action,
}
并且我传递了一个JSON字符串:
"{\"action\":0}" // `json_string` var
但当我try 像这样反序列化时:
let msg: Message = serde_json::from_str(json_string)?;
我得到错误expected value at line 1 column 11
.
在JSON中,如果我将数字0
替换为字符串"Join"
,则它可以工作,但我希望数字与Action
枚举值相对应(0
表示Action::Join
,1
表示Action::Leave
),因为它来自打字请求.有没有一种简单的方法来实现这一点?