9

Serde を使用して、次の構造体に基づいてJSON ( serde-json) および XML ( ) ファイルを逆シリアル化しようとしています。serde-xml-rs

use serde_derive::Deserialize;

#[derive(Debug, Clone, PartialEq, Deserialize)]
pub struct SchemaConfig {
    pub name: String,
    #[serde(rename = "Cube")]
    pub cubes: Vec<CubeConfig>,
}

逆シリアル化しているフィールドの名前は、ファイルの種類によって異なります。この場合、JSON ファイルにcubesキューブのリストを含むキーを持たせたいのですが、XML で同等のものは複数の<Cube />要素になります。

cubesと の両方をCube逆シリアル化のキーとして受け入れる方法がわかりません。私が見つけた最も近いものは#[serde(rename = "Cube")]オプションでしたが、それを使用すると、キーのみを受け入れるため、JSON デシリアライゼーションが機能しなくなりCubeます。そのオプションを削除すると、XML デシリアライゼーションcubesはキーとしてのみ受け入れられるため、機能しなくなります。

Serdeでこれを達成する簡単な方法はありますか?

4

1 に答える 1