我需要反序列化以下有效负载,特别是aud
来自 JSON 对象的字段:
claims: Claims {
aud: One("CBr3zBlrKBbwmxOAM1avZQ=="), // 24 len
// ...
}
claims::aud
是一个Aud
枚举:
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
#[serde(untagged)]
pub enum Aud {
One(String),
Many(Vec<String>),
}
当我尝试从中获取 aString
时,serde_json::to_string()
它会返回两个额外的字符,一个开始字符和结束字符。
use serde_json::Result;
fn aud_from_json(data: &claims::Aud) -> Result<String> {
let v = serde_json::to_string(&data)?;
Ok(v.to_owned())
}
let aud = aud_from_json(&token_data.claims.aud)?;
log::debug!("aud field: {:?}\t aud field len({})", &aud, &aud.len());
$ aud field: "\"CBr3zBlrKBbwmxOAM1avZQ==\"" aud field len(26)
似乎可能有尾随转义字符序列化到字符串中。
是否有一种方法可以返回aud
字段返回为String
,并且在没有额外字符的情况下进行了清理?
例如"CBr3zBlrKBbwmxOAM1avZQ=="