0

一些简短的上下文:我们将 uuid 存储在我们的数据库中;这些功能作为 id。我们希望将这些以 base62 编码表示形式呈现给各种 http 客户端。理想情况下,我们不必记住每次编码结构时都这样做。值得注意的是,我们还利用sqlx并通过query_as!. 例如:

#[derive(Debug, Deserialize, FromRow, Serialize)]
pub struct Widget {
    pub id: Uuid,
    pub name: String,
}

然后后来:

let widget = query_as!(Widget, r#"select * from widgets where id = $1"#, id).fetch_one(db_conn).await?;

理想情况下,我们希望利用相同的结构将数据发送到客户端,并且在从网络中提取数据时也是如此。我们还想在这样做时转换 id(在接收时从 base62 编码转换为 uuid,在发送时从 uuid 转换为 base62 编码)。

我们如何在继续利用这些结构的同时专门控制 JSON 序列化和反序列化的行为?

4

0 回答 0