我大致有这样的JSON:
[
{
"commonA": 1,
"commonB": 2,
"type": "Foo",
"fooSpecificA": 3,
"fooSpecificB": 4
},
{
"commonA": 5,
"commonB": 6,
"type": "Bar",
"barSpecificA": 7,
"barSpecificB": 8
},
...
换句话说,我有内部标记的对象,但是一些字段对于每种类型都是共同的。我想将其反序列化为类似于这样的内容:
struct Entry {
commonA: i64,
commonB: i64,
variant: EntryVariant,
}
enum EntryVariant {
Foo(FooSpecific),
Bar(BarSpecific),
}
struct FooSpecific {
fooSpecificA: i64,
fooSpecificB: i64,
}
struct BarSpecific {
barSpecificA: i64,
barSpecificB: i64,
}
使用Serde可以实现这个吗?
snake_case
;类型和枚举变体使用UpperCamelCase
;静态变量和常量使用SCREAMING_SNAKE_CASE
。 - Shepmaster#[rename_all()]
属性会使示例不够清晰。 - Timmmm