【发布时间】:2020-03-26 22:48:44
【问题描述】:
我试图映射到我的结构的数据有两种格式:
使用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,当只有一张人脸时(人脸字段只是放在根中):
{
"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 吗?
【问题讨论】:
-
我只是想补充一点,像这样设计 JSON 的人一定讨厌其他人:请不要那样做。
标签: json rust deserialization json-deserialization serde