将结构字段序列化为字符串会返回附加字符[Rust]

问题描述 投票:0回答:1

我需要将以下有效负载序列化,特别是将aud字段序列化为JSON结构:

claims: Claims { 
    aud: One("CBr3zBlrKBbwmxOAM1avZQ=="), \\ 24 len
    ..
  }

claims.aud是一个枚举枚举:

#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
#[serde(untagged)]
pub enum Aud {
    One(String),
    Many(Vec<String>),
}

当序列化有效负载字段值时,我得到一个具有(2)个附加字符的字符串。

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=="

rust escaping serde-json
1个回答
0
投票

不要在调试模式下打印输出:在格式字符串中使用{}而不是{:?}

log::debug!("aud field: {}\t aud field len({})", &aud, &aud.len());
© www.soinside.com 2019 - 2024. All rights reserved.