【发布时间】:2019-05-31 07:10:36
【问题描述】:
我正在将数据解析为:
struct Data {
field1: Option<f32>,
field2: Option<u64>,
// more ...
}
问题是我的输入数据格式将 Rust 中的 None 格式化为“n/a”。
如何告诉 Serde 对于特定字符串 n/a,Option<T> 应该是 None,而不是错误?我们可以假设这不适用于String。
这与How to deserialize "NaN" as `nan` with serde_json? 不是同一个问题,因为这是从特殊值创建f32,而我的问题是从特殊值创建Option<Anything>。它也不是How to transform fields during deserialization using Serde?,因为它仍然涉及特定类型。
【问题讨论】:
-
很难回答您的问题,因为它不包含minimal reproducible example。我们无法确切地知道您的输入是什么样的,或者即使是 JSON 或 YAML 或 ...。如果您尝试在Rust Playground 如果可能的话,否则在一个全新的 Cargo 项目中,然后 edit 你的问题包括附加信息。您可以使用Rust-specific MCVE tips 来减少您在此处发布的原始代码。谢谢!