Ich möchte das Test::team_size
Attribut haben aus den Daten von Test
Objekt selbst deserialisiert werden:Wie ein Teilfeld einer Struktur aus dem JSON der ursprünglichen Struktur mit Serde deserialisieren?
#[derive(Debug, Serialize, Deserialize)]
struct TeamSize {
pub min: i64,
pub max: i64,
}
#[derive(Debug, Serialize, Deserialize)]
struct Test {
pub i: i64,
pub team_size: TeamSize,
}
fn main() {
let t: Test = serde_json::from_str(r#"{"i": -2, "min": 2, "max": 5}"#).unwrap();
assert_eq!(t.i, -2);
assert_eq!(t.team_size.min, 2);
assert_eq!(t.team_size.max, 5);
}
Dieser Code kompiliert nicht, und ich weiß nicht, wie Serde tun, was ich will. Gibt es eine Möglichkeit, team_size
in diesem Beispiel aus dem JSON der ursprünglichen Struktur zu deserialisieren, wo es ein Unterfeld ist?
Es scheint, dass ich etwas wollen wie#[serde(untagged)]
aber für eine Struktur und für ein Feld und nicht die gesamte Struktur.
relevantes Thema: [serde # 119] (https://github.com/serde-rs/serde/issues/119) –