Мне нужно десериализовать следующую полезную нагрузку, в частности поле 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>),
}
Когда я пытаюсь получить String
из 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)
Похоже, что конечные escape-символы сериализованыв строку.
Существует ли метод, который может вернуть aud
поле, возвращаемое как String
, очищенное без лишних символов?
например, "CBr3zBlrKBbwmxOAM1avZQ=="