Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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"