Read JSON handle missing fields - set defaults
default
use serde::Deserialize; #[derive(Deserialize, Debug)] #[allow(dead_code)] struct Person { #[serde(default = "get_default_fname")] fname: String, #[serde(default = "get_default_false")] married: bool, } fn get_default_fname() -> String { String::from("Foo") } fn get_default_false() -> bool { false } fn main() { let content = "{}"; let data = serde_json::from_str::<Person>(content).expect("JSON parsing error"); println!("{:#?}", &data); }
Person {
fname: "Foo",
married: false,
}
[package]
name = "set-default-values"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = { version = "1.0.204", features = ["derive"] }
serde_json = "1.0.120"