How to Handle Unknown Fields in Serde

Use #[serde(default)] to ignore unknown fields or #[serde(deny_unknown_fields)] to reject them in Serde.

Add the #[serde(default)] attribute to your struct to ignore unknown fields during deserialization, or use #[serde(deny_unknown_fields)] to explicitly reject them. By default, Serde ignores unknown fields unless deny_unknown_fields is set.

use serde::Deserialize;

#[derive(Deserialize)]
#[serde(default)]
struct Config {
    name: String,
    // Unknown fields in JSON will be ignored
}

Alternatively, to fail on unknown fields:

use serde::Deserialize;

#[derive(Deserialize)]
#[serde(deny_unknown_fields)]
struct Config {
    name: String,
}