如何通过serde-json将枚举序列化为数字并从数字反序列化


struct ResponseData<T> {
success : bool,
res_data : T,
}
struct FooRes {
result:RESULT,
}
num RESULT {
RESULT_OK = 0,
RESULT_NG = 1,
}
fn test(){
let s = ResponseData::<FooRes>{
success : true,
res_data : FooRes{
result:RESULT::RESULT_OK,
},
};

let st = serde_json::to_string(&s).unwrap();
println!("json={}",st);

json={"成功":true,"resData":{"结果":"result_OK"}}

当将枚举序列化为数值时,我需要结果是{"result":0},而不是{"result":"RESULT_OK"},以及CCD_ 3以反序列化到枚举成员CCD_。

struct FooRes {
result:RESULT,
}

我该怎么做?

雷声,我解决了

https://serde.rs/enum-number.html

正确#[派生(Serialize_repr、Deserialize_repr、PartialEq、Debug(]不#[派生(调试、序列化、反序列化(]

在Enum上,tnx

最新更新