Zpracování chybějících členů během deserializace
Pokud datová část JSON, kterou deserializujete, ve výchozím nastavení obsahuje vlastnosti, které v deserializovaném prostém starém typu CLR (POCO) neexistují, jednoduše se ignorují. Od verze .NET 8 můžete určit, že v datové části musí být přítomni všichni členové. Pokud ne, JsonException vyvolá se výjimka. Toto chování můžete nakonfigurovat jedním ze tří způsobů:
Anotujte typ POCO pomocí atributu JsonUnmappedMemberHandlingAttribute a určete buď pro Skip členy, nebo Disallow chybějící členy.
[JsonUnmappedMemberHandling(JsonUnmappedMemberHandling.Disallow)] public class MyPoco { public int Id { get; set; } } JsonSerializer.Deserialize<MyPoco>("""{"Id" : 42, "AnotherId" : -1 }"""); // JsonException : The JSON property 'AnotherId' could not be mapped to any .NET member contained in type 'MyPoco'.
Nastavte JsonSerializerOptions.UnmappedMemberHandling na hodnotu nebo Skip Disallow.
JsonTypeInfo Přizpůsobte kontrakt pro příslušný typ. (Informace o přizpůsobení kontraktu najdete v tématu Přizpůsobení kontraktu JSON.)