逆シリアル化中に不足しているメンバーを処理する

既定では、逆シリアル化している JSON ペイロードに、逆シリアル化された POCO (単純な従来の CLR オブジェクト) 型にないプロパティが含まれている場合、それらは無視されます。 .NET 8 以降では、すべてのメンバーがペイロードに存在する必要があることを指定できます。 そうでない場合、JsonException 例外がスローされます。 この動作は、次の 3 つの方法のいずれかで構成できます。

  • POCO 型に [<xref:System.Text.Json.Serialization.JsonUnmappedMemberHandlingAttribute>] 属性で注釈を付け、不足しているメンバーを Skip または Disallow するように指定します。

    [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'.
    
  • JsonSerializerOptions.UnmappedMemberHandlingSkip または Disallow のいずれかに設定します。

  • 関連する型の JsonTypeInfo コントラクトをカスタマイズします。 (コントラクトのカスタマイズの詳細については、「JSON コントラクトをカスタマイズする」を参照してください)