Sag*_*jaj 6 json rust json-deserialization serde reqwest
我正在查询 API 中的一些数据,但它们的键名称中包含连字符而不是下划线,并且由于结构字段名称中不能包含连字符,因此我无法对其进行转换。
例如,我的结构:
pub struct Example {
user_id: String,
name: String,
}
Run Code Online (Sandbox Code Playgroud)
收到的 json 就像
{
"user-id": "abc",
"name": "John"
}
Run Code Online (Sandbox Code Playgroud)
现在我正在这样做,但我不能,因为我不能直接投射它
let res = client
.get("SOME-URL")
.header("x-api-key", APP_ID)
.send()
.await?;
let response_body: Example = res.json().await?;
Run Code Online (Sandbox Code Playgroud)
Net*_*ave 10
如果只是单个属性,可以使用:
如果是全部(烤肉串盒或其他样式),您可以使用:
#[serde(rename_all = "kebab-case")]
#[derive(Deserialize, Debug)]
pub struct Example {
#[serde(alias = "user-id")]
user_id: String,
name: String,
}
Run Code Online (Sandbox Code Playgroud)