次の方法で共有


逆シリアル化中にマップされていないメンバーを処理する

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

  • JsonUnmappedMemberHandlingAttribute 属性を使用して POCO 型に注釈を付け、マップされていないメンバーを 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 コントラクトをカスタマイズする」を参照してください)