Available on crate feature serde_json
only.
Expand description
Parse a json Value as T
, logging ignored fields and giving a more detailed error message on parse errors
609
610
611
612
613
614
615
616
617
618
fn deserialize_none_from_empty_string<'de, D, T>(deserializer: D) -> Result<Option<T>, D::Error>
where
D: serde::de::Deserializer<'de>,
T: serde::de::DeserializeOwned, {
let val = serde_json::Value::deserialize(deserializer)?;
match val {
serde_json::Value::String(string) if string.is_empty() => Ok(None),
other => Ok(parse_json_value(other, true).map_err(serde::de::Error::custom)?),
}
}
More examples
Hide additional examples
100
101
102
103
104
105
106
107
108
109
fn deserialize_none_from_empty_string<'de, D, T>(deserializer: D) -> Result<Option<T>, D::Error>
where
D: serde::de::Deserializer<'de>,
T: serde::de::DeserializeOwned, {
let val = serde_json::Value::deserialize(deserializer)?;
match val {
serde_json::Value::String(string) if string.is_empty() => Ok(None),
other => Ok(parse_json_value(other, true).map_err(serde::de::Error::custom)?),
}
}