我使用SERDE反序列化具有十六进制值的XML文件0x400作为一个字符串,我需要将其转换为数值1024的u32.
我是否需要实现Visitor特性,以便将0x分离,然后将400从基数16解码到基数10?如果是这样,我该怎么做才能使基数10整数的反序列化保持不变?
我试图将枚举序列化为JSON字符串.我Serialize为我的枚举实现了特征,因为它在文档中有描述,但我总是得到{"offset":{"Int":0}}而不是想要的{"offset":0}.
extern crate serde;
extern crate serde_json;
use std::collections::HashMap;
use serde::ser::{Serialize, Serializer};
#[derive(Debug)]
enum TValue<'a> {
String(&'a str),
Int(&'a i32),
}
impl<'a> Serialize for TValue<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
match *self {
TValue::String(ref s) => serializer.serialize_newtype_variant("TValue", 0, "String", s),
TValue::Int(i) => serializer.serialize_newtype_variant("TValue", 1, "Int", &i),
}
}
}
fn main() {
let offset: i32 = 0;
let mut request_body = HashMap::new();
request_body.insert("offset", TValue::Int(&offset));
let serialized = …Run Code Online (Sandbox Code Playgroud)