1
私は2つの形式がありますJSONありますキー名に基づいて列挙型にデシリアライズする方法はありますか?
"Example:" { "field": 42, "A": 76 }
"Example:" { "field": 42, "B": 110 }
私はこのような構造体にそれをデシリアライズしたい:
enum AnEnum {
A(i32),
B(i32),
}
私はどのように知りません
struct Example {
field: i32,
an_enum: AnEnum,
}
をExample
のカスタムデシリアライザを作成せずに実行します。
"Example:" { "field": 42, "an_enum": {"A": 76} }
をか、YAMLで:
これは動作します
Example:
field: 42
an_enum:
A: 76
an_enum
は余分と書くのは面倒です。構造体に最初のフォームをどのように逆シリアル化できますか?または、代わりに、私が望む構文を正常に逆シリアル化する構造体を宣言する方法はありますか?
はい、私はカスタム直列化復元でそれを行う方法を知っています。私はいくつかの亜種を持っているとき、このコードは面倒になり、私の現在の仕事で少なくとも2回起こります。私が望むのは、 'an_enum'フィールドに何らかのタグが付いている(またはシリアライゼーションでは省略されている)ということです。 –
私は 'r#...'表記に慣れていません。あなたはそれを説明できますか? –
@StevePowell https://stackoverflow.com/questions/26611664/the-operator-r-in-rust –