Hiányzó tagok kezelése a deszerializálás során
Alapértelmezés szerint, ha a deszerializálni kívánt JSON hasznos adat olyan tulajdonságokat tartalmaz, amelyek nem léteznek a deszerializált egyszerű régi CLR-objektum (POCO) típusban, egyszerűen figyelmen kívül hagyják őket. A .NET 8-tól kezdődően megadhatja, hogy minden tagnak jelen kell lennie a hasznos adatban. Ha nem, kivételt JsonException jelent. Ezt a viselkedést háromféleképpen konfigurálhatja:
Jegyzetelje a POCO-típust az
[<xref:System.Text.Json.Serialization.JsonUnmappedMemberHandlingAttribute>]
attribútummal, és adja meg a tagoknak vagy Disallow hiányzó tagoknakSkip.[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'.
Állítsa be JsonSerializerOptions.UnmappedMemberHandling a vagy DisallowSkip a .
Szabja testre a JsonTypeInfo szerződést a megfelelő típushoz. (A szerződés testreszabásával kapcsolatos információkért lásd: JSON-szerződés testreszabása.)
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: