Данные, которые я пытаюсь отобразить в моей структуре, представлены в двух форматах:
С card_faces
, когда на карте имеется более одного лица:
{
"object": "card",
"id": "some_id",
"lang": "en",
"released_at": "2012-02-03",
"card_faces": [
{
"name": "some_name",
"cost": "5",
"ctype": "some_type",
"colors": [
"R",
"B"
]
},
{
"name": "another_name",
"cost": "",
"ctype": "another_type",
"colors": [
"R",
"B"
]
}
],
"set_code": "some_code"
}
И без card_faces
, когда есть только одна грань (поля граней просто помещены в root):
{
"object": "card",
"id": "some_id",
"lang": "en",
"released_at": "2012-02-03",
"name": "some_name",
"cost": "5",
"ctype": "some_type",
"colors": [
"R",
"B"
],
"set_code": "some_code"
}
Я бы хотел, чтобы в моей структуре всегда было поле Vec<CardFace>
. Что-то вроде:
#[derive(Deserialize)]
struct Card {
object: String,
id: String,
lang: String,
released_at: String,
faces: Vec<CardFace>,
set_code: String,
}
Можно ли десериализовать эти объекты и привести поля лица в нужный формат или мне нужно будет манипулировать json до десериализации?