處理還原序列化期間遺漏的成員
根據預設,如果您要還原序列化的 JSON 承載包含的屬性不存在於已還原序列化簡單的 CLR 物件 (POCO) 類型中,則這些屬性會遭到忽略。 從 .NET 8 開始,您可以指定所有成員都必須存在於承載中。 如果不存在,則會擲回 JsonException 例外狀況。 您可以使用下列三種方式的其中一種來設定此行為:
使用 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 合約。)