小编Jac*_*lli的帖子

Rust Serde:将 XML 直接反序列化为 Vec<T>

我需要用来serde序列化一些 XML 数据。数据具有一种模式,其中复数形式的标签名称(例如 CATS、DOGS)将包含单数形式的标签子标签的多个实例(CAT、DOG),如下所示:

<pets>
  <cats>
    <cat>
      <name>
          cat 1
      </name>
    </cat>
    <cat>
      <name>
          cat 2
      </name>
    </cat>
  </cats>
  <dogs>
    <dog>
      <name>
          dog 1
      </name>
    </dog>
    <dog>
      <name>
          dog 2
      </name>
    </dog>
  </dogs>
</pets>
Run Code Online (Sandbox Code Playgroud)

现在,我可以用serdeand反序列化它serde-xml-rs

use serde::{Serialize, Deserialize};
use serde_xml_rs;

#[derive(Debug, Serialize, Deserialize)]
struct Pets {
    pub cats: Cats,
    pub dogs: Dogs,
}

#[derive(Debug, Serialize, Deserialize)]
struct Cats {
    pub cat: Vec<Cat>,
}

#[derive(Debug, Serialize, Deserialize)]
struct Dogs {
    pub dog: Vec<Dog>,
}

#[derive(Debug, …
Run Code Online (Sandbox Code Playgroud)

xml serialization rust deserialization serde

6
推荐指数
1
解决办法
481
查看次数

标签 统计

deserialization ×1

rust ×1

serde ×1

serialization ×1

xml ×1