pub fn deserialize_string_from_number<'de, D>(
deserializer: D
) -> Result<String, D::Error>where
D: Deserializer<'de>,
Expand description
Deserializes string from a number. If the original value is a number value, it will be converted to a string.
Example:
#[macro_use]
extern crate serde_derive;
extern crate serde_json;
extern crate serde_aux;
extern crate serde;
use serde_aux::prelude::*;
#[derive(Serialize, Deserialize, Debug)]
struct MyStruct {
#[serde(deserialize_with = "deserialize_string_from_number")]
number_as_string: String,
}
fn main() {
let s = r#" { "number_as_string": "foo" } "#;
let a: MyStruct = serde_json::from_str(s).unwrap();
assert_eq!(a.number_as_string, "foo");
let s = r#" { "number_as_string": -13 } "#;
let a: MyStruct = serde_json::from_str(s).unwrap();
assert_eq!(a.number_as_string, "-13");
}