【问题标题】:How to create xml from struct in rust?如何从 rust 中的结构创建 xml?
【发布时间】:2021-11-26 11:57:41
【问题描述】:

我尝试从 rust 中的结构创建 xml 字符串。该结构是嵌套的,我总是在 xml 中得到重复的标签。 我正在使用 serde-xml-rs 版本 0.5.1。

#[derive(Serialize, Debug)]
struct A {
   #[serde(rename(serialize = "B"))]
   pub b: B
}

#[derive(Serialize, Debug)]
struct B {
    pub c: String
}

let foo = A {
    b: B {
        c: "bar".to_string()
    }
};

println!("{:?}", to_string(&foo));

这会产生

<A>
    <B>
        <B>
            <c>bar</c>
        </B>
    </B>
</A>

我的期望:

<A>
    <B>
        <c>bar</c>
    </B>
</A>

我怎样才能只得到一个 B 标签?

【问题讨论】:

    标签: rust serde


    【解决方案1】:

    您可以更改B 结构以避免它发出&lt;B&gt; 标记,如下所示:

    #[derive(Serialize, Debug)]
    struct B {
        pub c: String,
        #[serde(flatten, skip)]
        pub _d: (),
    }
    

    【讨论】:

    • 这行得通!非常感谢,jonasbb!
    猜你喜欢
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2020-07-19
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多