gpt4 book ai didi

rust - 如何使用 serde 从 XML 属性反序列化数字?

转载 作者:行者123 更新时间:2023-11-29 08:09:26 27 4
gpt4 key购买 nike

我想从 XML 属性反序列化一个数字(例如,u32)。

#[macro_use]
extern crate serde_derive;
extern crate serde;
extern crate serde_xml_rs as serde_xml;


#[derive(Deserialize, Debug)]
#[serde(rename = "objects")]
pub struct Objects {
pub foo: u32
}

fn main() {
let result_string = r#"<?xml version="1.0" encoding="UTF-8"?>
<objects foo="42"></objects>"#;
let deserialized: Objects= serde_xml::deserialize(result_string.as_bytes()).expect("Parse error!");
}

但是执行后,出现如下错误

thread 'main' panicked at 'Parse error!: invalid type: string "42", expected u32'

我知道 #[serde(deserialize_with="...")] 注释,但是有没有更简单的方法(例如使用 serde_xml_rs crate)?

最佳答案

不要使用 0.2.1。添加到 Cargo.toml:

serde-xml-rs = { git= "https://github.com/RReverser/serde-xml-rs.git"}

使用 master 的 serde-xml-rs 修复了这个问题。

关于rust - 如何使用 serde 从 XML 属性反序列化数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51082737/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com