逆シリアル化中にマップされていないメンバーを処理する
既定では、逆シリアル化する 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.UnmappedMemberHandling を Skip または Disallow のいずれかに設定します。
関連する型の JsonTypeInfo コントラクトをカスタマイズします。 (コントラクトのカスタマイズの詳細については、「JSON コントラクトをカスタマイズする」を参照してください)
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET