如何避免Serde需要跳过序列化的字段的默认特征?

时间:2018-01-24 09:40:01

标签: rust serde

我有这个通过使用Serde反序列化创建的结构,我希望在其中有一个类型为@SpringBootApplication public class YourApp { public static void main(String[] args) { SpringApplication.run(YourApp.class, args); } @Autowired private CsvBeanRepository repo; @Bean public InterfaceSome some() { if(something) { return new Some(repo); } else { return new Some2(repo); } } } 的字段,但不反序列化:

Url

Playground

Serde抱怨#[derive(Deserialize, Debug)] pub struct Flow { #[serde(skip_deserializing)] pub source: Url, } 不满足Url特质。我尝试过使用和不使用Default。我唯一的选择是为Default自己实施Default特征吗?

2 个答案:

答案 0 :(得分:11)

您可以在字段上使用#[serde(default = "path")]来提供带有签名<httpRuntime targetFramework="4.5.2" maxRequestLength="2147483647" executionTimeout="99999" requestLengthDiskThreshold="2147483647"/> <security> <requestFiltering> <requestLimits maxAllowedContentLength="2147483647" /> </requestFiltering> </security> 的函数,如果字段丢失,应该调用该函数。

答案 1 :(得分:0)

也可以自己implement Deserialize并适当处理缺失值。