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 = "2024"
[dependencies]
serde = { version = "1.0.204", features = ["derive"] }
serde_json = "1.0.120"