Behandeln fehlender Member während der Deserialisierung
Wenn die JSON-Nutzlast, die Sie deserialisieren, Eigenschaften enthält, die im deserialisierten POCO-Typ (Deserialized Plain Old CLR Object) nicht vorhanden sind, werden diese standardmäßig ignoriert. Ab .NET 8 können Sie angeben, dass alle Member in der Nutzlast vorhanden sein müssen. Wenn dies nicht der Fall ist, wird eine JsonException-Ausnahme ausgelöst. Sie können dieses Verhalten auf eine von drei Arten konfigurieren:
Kommentieren Sie Ihren POCO-Typ mit dem JsonUnmappedMemberHandlingAttribute-Attribut, und geben Sie an, dass fehlender Member entweder mit Skip oder mit Disallow behandelt werden.
[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'.
Legen Sie JsonSerializerOptions.UnmappedMemberHandling entweder auf Skip oder Disallow fest.
Passen Sie den JsonTypeInfo-Vertrag für den relevanten Typ an. (Informationen zum Anpassen eines Vertrags finden Sie unter Anpassen eines JSON-Vertrags.)